我正在使用UITabBarController和UINavigationController制作应用程序。视图控制器图如下所示:
TabBar Controller > Navigation Controller > View Controller
在第一个视图控制器中,我将导航栏设置为隐藏。但是当我单击TabBar项目以显示其他视图控制器时,然后单击返回第一个视图控制器时,将显示导航栏。每当我添加所有其他视图控制器时:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = NO;
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
self.navigationController.navigationBarHidden = YES;
}
有人知道如何在第一视图控制器中设置我的导航栏以始终隐藏吗?请帮忙。提前谢谢。
如果你在某个视图中,控制器必须使用这种方法:
[self.navigationController setNavigationBarHidden:YES animated:YES];
要隐藏导航栏在任何视图中控制器:
目标-C
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:animated]; // Will hides Navigationbar
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:NO animated:animated]; // Will shows Navigationbar
[super viewWillDisappear:animated];
}
迅速
override func viewWillAppear(animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: animated)
super.viewWillAppear(animated)
}
override func viewWillDisappear(animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: animated)
super.viewWillDisappear(animated)
}
如果底部有多个选项卡,则遵循结构:
控制器> 导航 控制器> 视图控制器
然后要在第一个视图控制器中隐藏导航栏,您需要使用以下代码
// TO HIDE NAVIGATION BAR in the first view controller
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
// TO SHOW NAVIGATION BAR in other view controllers
如果您希望所有其他视图都显示导航栏,则可以使用 viewWillDisappear 将其再次设置为可见。
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}