Ho un problema con didSelectRowAtIndexPath di UITableView di IOS 5, che è corretta in ios 4.UITableView didSelectRowAtIndexPath non essendo chiamato primo rubinetto
La prima volta che toccare alcuna riga nella tabella, il metodo non fa essere chiamato Una volta che seleziono un'altra riga, chiama didSelectRowAtIndexPath, ma passa l'ultimo indexPath.
Ho già impostato tableView.delegate e può essere eseguito correttamente in ios4.
MainView.xib
UITabBarController
--UINavigationController
--**UITableViewController**
Qualche suggerimento?
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.delegate = self;
self.tableView.dataSource = self;
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [[NSString alloc]initWithFormat:@"%d",indexPath.row];
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%d",indexPath.row);
}
Puoi pubblicare il codice? Sei sicuro di non aver implementato didDeselectRowAtIndexPath? – Anna
Non ho implementato la deselezione. Grazie. –
Questo dovrebbe funzionare senza problemi. Questa classe è una sottoclasse di UITableViewController? Se è così, non è necessario impostare delegate nel metodo viewDidLoad cos è già assegnato. Altrimenti aggiungi delegato nel file di classe .h tra parentesi. –