Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3361720
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T03:11:12+00:00 2026-05-18T03:11:12+00:00

UITableViewController doesn’t scroll automatically anymore? When you have a text field inside a UITableViewController

  • 0

UITableViewController doesn’t scroll automatically anymore?

When you have a text field inside a UITableViewController cell that would be obfuscated by the keyboard, if the field receive the focus, the UITableViewController scroll (or it should) the field to a visible area. I have a simple UITableViewController inside a simple UITabBarController, the changes ive made in the UITableViewController are the background color and the section header views… any ideas? There is the code… 😉

//
//  SolicitaTaxiPhone.h
//  ExpressTaxi
//
//  Created by Paulo Ferreira on 11/5/10.
//  Copyright 2010 MobileLifeUtils.com. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface SolicitaTaxiPhone : UITableViewController <UITextFieldDelegate> {
    NSArray *aGruposCamposSolicitacao;
}

@end


//
//  SolicitaTaxiPhone.m
//  ExpressTaxi
//
//  Created by Paulo Ferreira on 11/5/10.
//  Copyright 2010 MobileLifeUtils.com. All rights reserved.
//

#import "SolicitaTaxiPhone.h"

#import <QuartzCore/QuartzCore.h>

@implementation SolicitaTaxiPhone


#pragma mark -
#pragma mark Initialization

- (id)initWithStyle:(UITableViewStyle)style {
    // Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
    self = [super initWithStyle:style];

    self.title = @"Solicitar Táxi";
    self.navigationItem.title = @"Solicitar Táxi";

    //[self.tableView setBackgroundColor:[UIColor blackColor]];

    UITextField *tfOrigem = [UITextField new];
    [tfOrigem setFrame:CGRectMake(10.0f, 10.0f, 240.0f, 25.0f)];
    [tfOrigem setClearButtonMode:UITextFieldViewModeWhileEditing];
    [tfOrigem setAutocorrectionType:UITextAutocorrectionTypeNo];
    [tfOrigem setAutocapitalizationType:UITextAutocapitalizationTypeWords];
    [tfOrigem setReturnKeyType:UIReturnKeyDone];

    UIButton *btLocalizacaoAtual = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btLocalizacaoAtual setFrame:CGRectMake(250.0f, 1.0f, 40.0f, 40.0f)];
    [btLocalizacaoAtual setTitle:@"GPS" forState:UIControlStateNormal];

    NSArray *aCamposOrigem = [NSArray arrayWithObjects:tfOrigem, btLocalizacaoAtual, nil];

    NSDictionary *dCamposOrigem = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"Endereço de Origem", aCamposOrigem, nil]
                                                        forKeys:[NSArray arrayWithObjects:@"titulo", @"componentes", nil]
                                   ];


    UITextField *tfComplemento = [UITextField new];
    [tfComplemento setFrame:CGRectMake(10.0f, 10.0f, 280.0f, 25.0f)];
    [tfComplemento setClearButtonMode:UITextFieldViewModeWhileEditing];
    [tfComplemento setAutocorrectionType:UITextAutocorrectionTypeNo];
    [tfComplemento setAutocapitalizationType:UITextAutocapitalizationTypeWords];
    [tfComplemento setReturnKeyType:UIReturnKeyDone];

    NSArray *aCamposComplemento = [NSArray arrayWithObjects:tfComplemento, nil];

    NSDictionary *dCamposComplemento = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"Complemento do Endereço", aCamposComplemento, nil]
                                                              forKeys:[NSArray arrayWithObjects:@"titulo", @"componentes", nil]
                                   ];

    UITextField *tfDestino = [UITextField new];
    [tfDestino setFrame:CGRectMake(10.0f, 10.0f, 240.0f, 25.0f)];
    [tfDestino setClearButtonMode:UITextFieldViewModeWhileEditing];
    [tfDestino setAutocorrectionType:UITextAutocorrectionTypeNo];
    [tfDestino setAutocapitalizationType:UITextAutocapitalizationTypeWords];
    [tfDestino setReturnKeyType:UIReturnKeyDone];
    //[tfDestino setDelegate:self];

    UIButton *btReversoDestino = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btReversoDestino setFrame:CGRectMake(250.0f, 1.0f, 40.0f, 40.0f)];
    [btReversoDestino setTitle:@"RD" forState:UIControlStateNormal];

    NSArray *aCamposDestino = [NSArray arrayWithObjects:tfDestino, btReversoDestino, nil];

    NSDictionary *dCamposDestino = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"Endereço de Destino", aCamposDestino, nil]
                                                              forKeys:[NSArray arrayWithObjects:@"titulo", @"componentes", nil]
                                   ];

    aGruposCamposSolicitacao = [[NSArray arrayWithObjects:dCamposOrigem, dCamposComplemento, dCamposDestino, nil] retain];

    return self;
}


#pragma mark -
#pragma mark View lifecycle

/*
- (void)viewDidLoad {
    [super viewDidLoad];

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
*/

/*
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
}
*/

/*
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
}
*/
/*
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
}
*/
/*
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/


#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return [aGruposCamposSolicitacao count];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return 1;
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

    NSArray *aCamposSecao = [[aGruposCamposSolicitacao objectAtIndex:indexPath.section] valueForKey:@"componentes"];

    for (id componenteAtual in aCamposSecao) {
        [cell.contentView addSubview:componenteAtual];
    }

    return cell;
}

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 50;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *vwTitulo = [[UILabel alloc] init];
    [vwTitulo setBackgroundColor:[UIColor clearColor]];

    UIView *vwBackgroundTitulo = [[UIView alloc] initWithFrame:CGRectMake(10.0f, 10.0f, 300.0f, 30.0f)];
    [vwBackgroundTitulo setBackgroundColor:[UIColor yellowColor]];
    vwBackgroundTitulo.layer.cornerRadius = 10.0f;

    UILabel *lblTitulo = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 00.0f, 300.0f, 28.0f)];
    [lblTitulo setBackgroundColor:[UIColor clearColor]];
    [lblTitulo setTextColor:[UIColor blackColor]];
    [lblTitulo setTextAlignment:UITextAlignmentCenter];
    [lblTitulo setFont:[UIFont boldSystemFontOfSize:18.0f]];
    [lblTitulo setText:[[aGruposCamposSolicitacao objectAtIndex:section] valueForKey:@"titulo"]];

    [vwBackgroundTitulo addSubview:lblTitulo];
    [vwTitulo addSubview:vwBackgroundTitulo];

    return vwTitulo;
}

/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the specified item to be editable.
    return YES;
}
*/

/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
    }   
    else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }   
}
*/


/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/


/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the item to be re-orderable.
    return YES;
}
*/


#pragma mark -
#pragma mark Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic may go here. Create and push another view controller.
    /*
     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:detailViewController animated:YES];
     [detailViewController release];
     */
}


#pragma mark -
#pragma mark UITextFieldDelegate

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    NSLog(@"Chamou essa jossa!");
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
    [self isFirstResponder];
}

#pragma mark -
#pragma mark Memory management

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Relinquish ownership any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
    // For example: self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}


@end
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T03:11:13+00:00Added an answer on May 18, 2026 at 3:11 am

    I discovered that the problem it’s not the UITableViewController, as soon as I discover the real problem I’ll post it here.

    The problem was the existence of 3 UIViewControllers nested without need…
    Thanks for the help!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am displaying a UITableViewController inside of a UITabBarController that is being presented modally:
I have a UIPickerView as subview in a UITableViewController, which I want to slide
Here is the situation, I have UIViewController class with a UITableView outlet. I would
I have the following object structure: UITabBarController UINavigationController UITableViewController It used to work, but
My application has a view controller that extends UITableViewController . The initialization method looks
I have this code to set the background image of the UITableViewController: self.tableView.backgroundColor =
I have an object that is appending a local string to another, and then
I have a class that retrieves data from core data and stores it into
I want a class that take a REQUIRED argument like the UITableViewController that does
UITableViewController seems to always hijack the View link in IB. So, if I put

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.