我从导航控制器推出时如何隐藏导航栏?

sen*_*thu 39 iphone objective-c uinavigationbar uinavigationcontroller

当我使用pushViewController从导航控制器推送时, 如何在UIViewcontroller中隐藏顶部栏?有什么帮助吗?

Ed *_*rty 108

将此代码放在要隐藏导航栏的视图控制器中.

- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}
Run Code Online (Sandbox Code Playgroud)

您可能还想根据自己的需要坚持下去:

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}
Run Code Online (Sandbox Code Playgroud)

  • 您只需要隐藏导航栏,就可以将setNavigationBarHidden调用放在任何位置. (3认同)

dus*_*rwh 11

以下是在Swift 3中的操作方法:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
Run Code Online (Sandbox Code Playgroud)

PS我发现如果你设置动画false,推出时会出现一个黑条.但是当它被设定为true像丝绸一样光滑的时候!

  • 谢谢!方法 hidesBottomBarWhenPushed() 也很有用 (2认同)