2009-04-22 6 views
0

J'utilise un UITableView pour afficher une liste des cellules, lorsque l'utilisateur sélectionne une cellule alors une nouvelle vue apparaît en utilisant le code suivant:Comment effectuer une désélection de cellule lorsqu'un utilisateur retourne à une vue de table?

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [self.navigationController pushViewController: detailsViewController animated: TRUE]; 
} 

En utilisant le code ci-dessus, la vue est affichée correctement, mais quand je reviens à la vue de la table racine, la cellule est toujours sélectionnée. J'ai remarqué, dans de nombreux exemples SDK, que la cellule est désélectionnée (avec une belle animation) lorsque la vue racine est remplie, mais je n'ai pas trouvé le code qui a implémenté cette fonctionnalité dans aucun des exemples. Je sais que je peux utiliser:

[tableView deselectRowAtIndexPath:indexPath animated: YES]; 

à mettre en œuvre, mais je suis très curieux sur la façon dont ces exemples font sans utiliser le code.

Des idées?

Répondre

1

UITableViewController gère automatiquement pour vous lorsque vous appelez super dans viewDidAppear: etc. Donc, la meilleure façon d'y parvenir est de sous-classe UITableViewController. Si vous ne pouvez pas (par exemple, parce que la table n'est qu'une partie d'une vue plus complexe), vous devrez le faire vous-même dans la méthode viewDidAppear:. (Vous devriez également faire clignoter les défileurs, aussi).

+0

Merci beaucoup, c'était tout! –

Questions connexes