Popping Uinavigation Controller a una vista de uitable y mostrando una fila seleccionada diferente
Pregunta
Estoy creando una aplicación con un UITableView
Ser el primer elemento en la pila de la UINavigationController
que está en. Haciendo una selección en el UITableView
empujará la vista a un "DetailedViewController
". En el DetailedViewController
, puede navegar a través de los elementos con los que se llena la vista de la tabla.
Al hacer estallar el DetailedViewController
, y volver a la UITableView
, ¿cómo puedo anular el anexo respectivo al que he navegado a través del DetailedViewController
y mostrarlo centrado en el UITableView
?
Un ejemplo que todos pueden ver sería la solicitud de correo. Cuando estás en tu bandeja de entrada y haces una selección, empuja un "DetailedViewController
". Allí, puedes navegar a través de los elementos poblados en el UITableView
. Cuando estallas el DetailedViewController
, deselecciona el elemento respectivo que estabas mirando al final en el DetailedViewController
.
Solución
Para anular la selección de la fila seleccionada, escriba el siguiente código viewDidAppear:
método.
// 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];
Otros consejos
Dependiendo de cómo desee que se vea la animación, simplemente puede anular la selección de su fila seleccionada actualmente.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
...
}