2009-09-08 12 views
5

Tengo una aplicación para iPhone basada en un controlador de navegación.Ocultar automáticamente UINavigationBar y UIToolbar

Tengo un controlador de vista principal que muestra una lista de artículos, y una vista de detalle, donde puede ver un artículo en un UIWebView. Para la vista de detalles, tengo la barra de navegación en la parte superior y un UIToolbar en la parte inferior.

Me gustaría auto-ocultarlos con una animación de diapositivas (arriba y abajo) y restaurarlos al tocar la pantalla. Pensé que esta sería una función estándar, pero no pude encontrar cómo hacerlo.

Como referencia, esto es lo que hacen Stanza o la aplicación NYT.

Respuesta

17

Configuración de un método que funciona esto en un evento del grifo:

if (![navigationController isNavigationBarHidden]) 
    [navigationController setNavigationBarHidden:YES animated:YES]; // hides 
else 
    [navigationController setNavigationBarHidden:NO animated:YES]; // shows 

En cuanto a la UIToolbar, es una subclase UIView, por lo que debe ser capaz de establecer con bastante facilidad una custom animation para el deslizamiento esto en y fuera de la vista.

1

Prueba esto:

BOOL hide = ![self.navigationController isNavigationBarHidden]; 
[self.navigationController setNavigationBarHidden:hide animated:YES]; 
1

Existe también un método muy útil para UIViewController.

- (BOOL) hidesBottomBarWhenPushed { 
//hide a toolbar or whatever 
return NO; 
} 
0

supongo recientemente puede utilizar self.navigationController.hidesBarsOnTap = true;

Cuestiones relacionadas