我找到了很多帖子,但仍然没有解决方案。我想在最初的UIViewController
上隐藏一个NavigationBar,但我还想在第二个UIViewController
上显示它。这是我的故事板:
当我关闭主视图控制器的推断顶部栏时,它会在故事板中消失,但在我运行应用程序时仍会显示。当我在NavController中对NavigationBar执行相同操作时,它会消失所有三个(因为它们都继承了无导航栏)。
我想在ScrollViewV视图控制器中显示NavBar,但将其隐藏在MainViewController
中。
所有控制器都有相应的.h或.m文件,但我对如何以编程方式执行此操作感到困惑。如果您需要查看其他任何内容,请与我们联系。非常感谢!
答案 0 :(得分:42)
在mainViewController中,您可以执行以下操作:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
您可能希望在隐藏此ViewController时显示导航栏,为此执行以下操作:
- (void)viewDidDisappear: (BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewDidDisappear:animated];
}
答案 1 :(得分:2)
如果您想在故事板中保留内容而不是编辑用户定义的属性和
将navigationController.navigationBarHidden
设置为布尔选中。
答案 2 :(得分:0)
self.navigationController.navigationBarHidden = YES;
答案 3 :(得分:0)
我注意到您还需要将以下内容添加到您希望导航显示的控制器中。
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillAppear:animated];
答案 4 :(得分:0)
有人想知道如何在Swift中执行此操作吗?
override func viewDidAppear(animated: Bool) {
self.navigationController?.navigationBar.hidden = true
}