我有一个登录视图控制器,在成功登录后,将我的用户推送到另一个视图控制器(ViewControllerB)。话虽这么说,ViewControllerB嵌入在UINavigationController中,我已经用菜单按钮格式化了。
因为我正在使用来自登录视图控制器的push segue,所以这个segue会导致我的UINavigationBar被空白导航栏和后退按钮覆盖(不酷)。也就是说,我尝试使用以下代码从登录视图控制器隐藏导航控制器:
loginviewcontroller.m
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
当我执行此操作时,将删除带有覆盖我的其他导航栏的后退按钮的不需要的导航栏!大。然而,当我导航到其他屏幕时,我的导航栏仍然隐藏(我想让它在我的用户通过ViewControllerB后出现)。
我尝试在成功登录时使用模态segue,但当然,这使我无法在登录时导航到其他具有segues的屏幕。
知道如何做到这一点吗?
答案 0 :(得分:1)
添加:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
答案 1 :(得分:1)
您应该从第一个Viewcontroller或loginViewController嵌入UINavigationController,在此ViewController中,您将隐藏导航栏,并且您可以取消隐藏导航栏的下一个viewController。它对我有用。
答案 2 :(得分:0)
swift 3
override func viewWillAppear(_ animated: Bool) {
//for hide navigation bar in current view
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
override func viewWillDisappear(_ animated: Bool) {
//for unhide in navigation bar in next/previous view
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}