13

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

在此处输入图像描述

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

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

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

4

5 回答 5

43

在您的 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];
}
于 2012-10-31T21:17:33.033 回答
2

如果您想将内容保留在 Storyboard 中,而不是编辑用户定义的属性并将其设置navigationController.navigationBarHidden为选中的布尔值。

于 2014-08-15T00:26:05.737 回答
0

我注意到您还需要将以下内容添加到您希望导航出现的控制器中。

[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillAppear:animated];
于 2013-09-03T13:36:24.930 回答
0
self.navigationController.navigationBarHidden = YES;
于 2012-10-31T21:20:01.290 回答
0

有人想知道如何在 Swift 中做到这一点吗?

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    self.navigationController?.navigationBar.hidden = true
}
于 2016-08-30T07:38:36.297 回答