如何隐藏导航栏,当我从导航控制器推?

问题描述:

如何隐藏顶部酒吧UIViewcontroller当我从导航控制器使用 pushViewController? 请帮忙吗?如何隐藏导航栏,当我从导航控制器推?

将此代码放入您想要隐藏导航栏的视图控制器中。

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

而且您可能还需要在坚持这里面,根据您的需要:

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

我想添加到这个问题,如何让它隐藏/显示,当用户点击它在哪里。即:像在照片应用程序。 – JoePasq

+3

当您需要隐藏导航栏时,您只需将该setNavigationBarHidden调用放在任何位置即可。 –

+0

好一个这对我有用。 –

对于iOS 8 可以围绕这一工作可以工作

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]; 

这里的如何在Swift 3

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

P.S.我发现如果将动画设置为false,则推动时会出现黑条。但是当它被设置为true它丝绸般光滑!