Estoy usando el código siguiente en el controlador de vista raíz para ocultar el encabezado de UITableView (el encabezado tiene una barra UISearch). Funciona cuando la aplicación se inicia y muestra el tableView ... Sin embargo, luego, cuando se selecciona una fila, se presiona la vista de detalles y el usuario muestra la vista de detalles, el encabezado uitableview ya está visible en la vista raíz, que no es lo que esperaba.IOS UITableView contentOffSet ya no oculta el encabezado al volver de la vista de detalle presionada
He aquí las funciones relevantes:
- (void) viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
self.tableView.contentOffset
= CGPointMake(0, self.tableView.tableHeaderView.frame.size.height);
//it's as if the line above is ignored on when returning from a pushed detail view
}
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// theContentOffSet works when I put it hear, but then the user can see it which is not desired
}
La línea '[self.navigationController setNavigationBarHidden: SÍ animada: animado];' es sin duda parte del problema, ya que sin él, el código funciona y el encabezado tableView se desplaza fuera de la vista. Sin embargo, el requisito para la vista raíz es que la barra de navegación esté oculta, pero que se muestre en la vista de detalles.
la línea de código que tiene para viewDidLoad que debería ser 'savedContentOffsetY', ¿verdad? De lo contrario, este código se ve muy bien, lo aceptaré como la respuesta tan pronto como lo pruebe. – kris
Buen descubrimiento, Kamchatka. Parece que 'performSelector' te permite superar algunos desafíos de sincronización con la animación que tienes con viewWillAppear – kris
Gracias por capturar el error tipográfico, corregido ahora. – Kamchatka