Tengo una configuración UISearchDisplayController
con UITableViewController
que está anidada dentro de UINavigationController
. Cuando se realiza una selección de una celda, se activa el método UITableView's
didSelectRowAtIndexPath
, que empuja una nueva vista al controlador de navegación principal. Esta nueva vista debe tener la barra de navegación oculta en la entrada.Mantener la barra de navegación de UINavigationController oculta después de la selección de UISearchDisplayController
[[self navigationController] setNavigationBarHidden:YES animated:NO];
que utilizan esta línea en el método didSelectRowAtIndexPath
para ocultar la barra de navegación. Esto funciona bien cuando se selecciona una fila que no utiliza el controlador de búsqueda, pero se anula al seleccionar un resultado de búsqueda. Parece que el UISearchDisplayController
lo lleva a su derecha para des-ocultar la barra de navegación en algún momento después de seleccionar la fila.
Si muevo la llamada setNavigationBarHidden
al método de la vista de destino viewWillAppear
, los resultados son similares. Puedo hacer que funcione al colocar la llamada de ocultación en viewDidAppear
, pero esto hace que un muy incómodo efecto de transición que se siente nervioso y fuera de lugar. Me gustaría que la barra de navegación ya esté oculta antes de que la nueva vista se deslice a la pantalla.
¿Alguien sabe dónde se está produciendo el desencadenamiento de la barra de navegación, y/o cualquier forma en que puedo anular este comportamiento?
Lo siento, aún no he marcado una respuesta correcta; Eventualmente encontré un truco que funcionó, que probablemente sea el mismo que el siguiente, pero desde entonces he avanzado y no he mirado ese proyecto por un tiempo. Cuando tenga la oportunidad, verificaré qué método usé y actualizaré esta pregunta. – peppy
¿Qué truco terminaste usando? – Sorig