Estoy usando iPhone SDK 3.1.3. Tengo un UITableViewController
que obtiene datos de otro controlador. La vista de tabla se agrega como una subvista a la vista principal pero el marco está configurado para que no esté visible. El marco de la vista de tabla se actualiza y se hace deslizar sobre la vista principal tocando un botón.UITableView desplazarse a la posición específica
Aparece la vista de tabla y me desplazo a la última fila. Si selecciono la última fila, recargo la tabla con más datos. La tabla se actualiza con más datos. Todo funciona bien, excepto que la posición de desplazamiento siempre es la superior.
Necesito que la posición de desplazamiento sea la última fila en la que hice clic para cargar más datos. Guardo la posición de desplazamiento y llamo al siguiente código después de que carga más datos. Se ejecuta sin problemas, pero la posición de desplazamiento siempre es la parte superior.
[theTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:savedScrollPosition inSection:0] atScrollPosition:savedScrollPosition animated:NO];
Lo anterior no parece tener ningún efecto. ViewWillAppear:
ViewDidAppear:
no se dispara y me dicen que si el controlador de vista se crea una instancia en el código, que es el caso, estos no se disparan. Por favor, ayúdame a descubrir cómo y cuándo establecer la posición de desplazamiento después de que la tabla se recargue ([theTableView reloadData]
) para que esté en la fila en la que hice clic.
Código para recargar vista de tabla de desplazamiento &
////performAction will notify the tableviewcontroller which will result in didPerformAction being called
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == lastRow)
{
savedScrollPosition = lastRow;
//perform the action
[controller performAction];
}
}
- (void) didPerformAction:(NSNotification *)obj
{
[theTableView reloadData];
[theTableView
scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:savedScrollPosition inSection:0]
atScrollPosition:UITableViewScrollPositionBottom
animated:NO];
}
qué es savedScrollPosition en esta declaración –