Répondre

95

Placez ce code dans le contrôleur de vue dont vous souhaitez masquer la barre de navigation.

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

Et vous pouvez aussi coller ce là, en fonction de vos besoins:

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

Je voudrais ajouter à la question, comment faire pour masquer/montrer quand l'utilisateur tape vers où il est. C'est à dire: comme dans l'application photos. – JoePasq

+3

Vous venez de mettre cet appel setNavigationBarHidden où vous voulez, quand vous avez besoin de cacher la barre de navigation. –

+0

Bon Un ça marche pour moi. –

0

Pour iOS 8 Peut être ce travail pourrait autour de travailler, il

CATransition* transition = [CATransition animation]; 
     transition.duration = 0.3; 
     transition.type = kCATransitionPush; 
     transition.subtype = kCATransitionFromRight; 
     [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; 
     [self.navigationController setNavigationBarHidden:TRUE animated:FALSE]; 
     [self.navigationController pushViewController:productViewObj animated:FALSE]; 
     [productViewObj.navigationController setNavigationBarHidden:TRUE animated:FALSE]; 
     [productViewObj release]; 
2

Voici comment le faire en Swift 3:

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.setNavigationBarHidden(true, animated: animated) 
} 

P.S. J'ai trouvé que si vous définissez animé à false, une barre noire apparaît sur push. Mais quand il est réglé à true il est lisse comme de la soie!

Questions connexes