Popping UinavigationController in un uitableView e visualizzando una riga selezionata diversa
Domanda
Sto creando un'applicazione con a UITableView
Essere il primo elemento sullo stack del UINavigationController
che è dentro. Fare una selezione sul UITableView
spingerà la vista su un "DetailedViewController
". Nel DetailedViewController
, è possibile navigare attraverso gli elementi con cui è popolata la vista del tavolo.
Quando si fa scoppiare il DetailedViewController
, e tornando al UITableView
, come posso deselezionare il rispettivo articolo a cui ho navigato attraverso il DetailedViewController
e visualizzarlo centrato in UITableView
?
Un esempio che tutti possono vedere sarebbe l'applicazione di posta. Quando sei nella tua casella di posta e fai una selezione, spingi un "DetailedViewController
". Lì, puoi navigare attraverso gli articoli popolati nel UITableView
. Quando fai il pop il DetailedViewController
, deseleziona il rispettivo oggetto che stavi guardando per ultimo nel DetailedViewController
.
Soluzione
Per deselezionare la riga selezionata, scrivi il seguente codice viewDidAppear:
metodo.
// 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];
Altri suggerimenti
A seconda di come vuoi che l'animazione sembri, potresti semplicemente deselezionare la tua riga attualmente selezionata.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
...
}