Pregunta

Cuando se introduce la barra de búsqueda manejada por un controlador de pantalla de búsqueda, se desliza la vista hacia arriba y empuja la barra de navegación con ella. Esto es bastante fácil de hacer, sin embargo, cuando se hace clic en un resultado de búsqueda y una nueva visión se empuja en la pila del mando de navegación, la barra de navegación se desliza por la derecha con la vista!

¿Cómo se hace esto? Si sólo tiene que establecer la barra de navegación para ocultar o mostrar, sucede al instante. No puedo imaginar cómo parece que se oculta sólo por un controlador de vista de la pila!

Muchas gracias,

Michael

¿Fue útil?

Solución

Puede animar la transición de la barra de navegación. Consulte -setNavigationBarHidden:animated: para más detalles.

Si necesitas hacer esto sobre una base per-view controlador, simplemente anular -viewDidAppear: y -viewWillDisappear: los métodos del controlador de vista, por ejemplo:.

- (void) viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

Lo anterior ocultará la barra de navegación cuando este controlador de vista es empujado en la parte superior de la pila de navegación, y mostrar la barra de navegación, cuando el controlador de vista se extrae fuera.

Puede llamar -setNavigationBarHidden:animated: siempre que lo desee, pero esos dos métodos son útiles para la aplicación de una gran cantidad de cambios de interfaz de usuario.

Otros consejos

-(void)viewDidLayoutSubviews{
    [self.navigationController setNavigationBarHidden:NO animated:NO];
}

no va a ocultar la barra de navegación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top