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.

È stato utile?

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];
     ...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top