Question

Je crée une application avec un UITableView le premier élément de la pile de la UINavigationController que ce soit dans. Faire une sélection sur la UITableView va pousser la vue d'une « DetailedViewController ». Dans le DetailedViewController, vous pouvez naviguer à travers les éléments que la vue de la table est remplie avec.

Quand sauter le DetailedViewController, et en décalant la UITableView, comment puis-je désactiver l'élément correspondant que j'ai navigué à travers le DetailedViewController et l'afficher centré dans le UITableView?

Un exemple que tout le monde peut voir serait l'application Mail. Lorsque vous êtes dans votre boîte de réception et de faire une sélection, vous appuyez sur un « DetailedViewController ». Là, vous pouvez naviguer à travers les éléments de population dans le UITableView. Lorsque vous la pop DetailedViewController, il désélectionne l'élément correspondant que vous regardiez dans le dernier DetailedViewController.

Était-ce utile?

La solution

Pour désélectionner la ligne sélectionnée, écrire la méthode de viewDidAppear: de code suivant.

// Index path for selected row
NSIndexPath *selectedRow = [_tableView indexPathForSelectedRow];

// Deselet the row with animation
[_tableView deselectRowAtIndexPath:selectedRow animated:YES];

// Scroll the selected row to the center
[_tableView scrollToRowAtIndexPath:selectedRow 
       atScrollPosition:UITableViewScrollPositionMiddle 
               animated:YES];

Autres conseils

Selon la façon dont vous voulez que l'animation de regarder vous pouvez simplement désactiver votre ligne sélectionnée.

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top