2009-09-08 19 views
5

Ho un'applicazione per iPhone che si basa su un controller di navigazione.Auto nascondere UINavigationBar e UIToolbar

Ho un controller di visualizzazione principale che visualizza un elenco di articoli e una vista di dettaglio in cui è possibile visualizzare un articolo in un UIWebView. Per la visualizzazione dei dettagli, ho la barra di navigazione in alto, e un UIToolbar sul fondo.

mi piacerebbe loro nascondere automaticamente con un'animazione diapositive (in alto e in basso) e ripristinarli quando si tocca lo schermo. Ho pensato che questo sarebbe una funzione standard, ma non ho trovato come farlo.

Come riferimento, questo è ciò che Stanza o l'applicazione NYT fanno.

risposta

17

Impostare un metodo che gestisce questo su un evento rubinetto:

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

Per quanto riguarda il UIToolbar, si tratta di una sottoclasse UIView, così si dovrebbe essere in grado di impostare abbastanza facilmente un custom animation per lo scorrimento questo e fuori dalla vista.

1

Prova questo:

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

V'è anche un metodo molto utile per UIViewController.

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

immagino di recente è possibile utilizzare self.navigationController.hidesBarsOnTap = true;