在Storyboard中隐藏一个ViewController的NavigationBar

时间:2012-10-31 21:13:58

标签: iphone ios xcode uinavigationcontroller navbar

我找到了很多帖子,但仍然没有解决方案。我想在最初的UIViewController上隐藏一个NavigationBar,但我还想在第二个UIViewController上显示它。这是我的故事板:

enter image description here

当我关闭主视图控制器的推断顶部栏时,它会在故事板中消失,但在我运行应用程序时仍会显示。当我在NavController中对NavigationBar执行相同操作时,它会消失所有三个(因为它们都继承了无导航栏)。

我想在ScrollViewV视图控制器中显示NavBar,但将其隐藏在MainViewController中。

所有控制器都有相应的.h或.m文件,但我对如何以编程方式执行此操作感到困惑。如果您需要查看其他任何内容,请与我们联系。非常感谢!

5 个答案:

答案 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
}