2009-09-08 7 views
5

J'ai une application iPhone basée sur un contrôleur de navigation.Masquage automatique UINavigationBar et UIToolbar

J'ai un contrôleur de vue principale qui affiche une liste d'articles, et une vue détaillée, où vous pouvez voir un article dans un UIWebView. Pour la vue détaillée, j'ai la barre de navigation en haut et une UIToolbar en bas.

Je voudrais les masquer automatiquement avec une animation de diapositive (en haut et en bas) et les restaurer lorsque je tape sur l'écran. Je pensais que ce serait une fonction standard, mais je ne pouvais pas trouver comment le faire. En tant que référence, c'est ce que font Stanza ou l'application NYT.

Répondre

17

Mettre en place une méthode qui fonctionne cela sur un événement du robinet:

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

Quant au UIToolbar, il est une sous-classe UIView, vous devriez donc pouvoir assez facilement mettre en place un custom animation pour glisser cela dans et hors de vue.

1

Essayez ceci:

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

Il y a aussi une méthode assez utile pour UIViewController.

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

Je suppose que vous pouvez utiliser récemment self.navigationController.hidesBarsOnTap = true;