在故事板中隐藏导航栏

35

有人能告诉我如何隐藏我的storyboard中的导航栏吗?当我在模拟器中运行我的代码时,它可以正常工作,但在storyboard中它仍然出现,这真的很让我烦恼,因为它会影响我的图像布局。有人能帮忙吗?

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

- (void) viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

1
对于每个试图从Storyboard中找出如何隐藏导航栏的人...这是不可能的。但是,这是有充分理由的。预期的方式是首先通过编程方式简单地隐藏/显示导航栏(类似于self.navigationController?.setNavigationBarHidden(true, animated: animated)),然后在你的Storyboard中,调整每个单独视图控制器的“模拟指标>顶部栏”,以便其外观反映当前从你的代码中发生的情况... - Eric
因为模拟指标的目的是让您根据代码的效果来预览视图,而这些效果您尚未“看到”。 - Eric
6个回答

70

enter image description here

点击控制器,该控制器拥有顶部栏导航到Xcode右侧的属性栏。有一个下拉菜单标记为顶部栏(如上所示),将此下拉菜单更改为无。

我认为这个答案和第一个是一样的。 - LJ Wilson
我在打字的时候它被添加了。 - shoughton123
12
如果我想按视图控制器来设置它呢? - Van Du Tran
1
有人成功地实现了每个视图控制器的导航隐藏和显示吗? - Imran
@VanDuTran 请看我在原始问题(上面)的评论。 - Eric

12

您需要点击实际的导航控制器,而不是视图控制器。在视图控制器上,导航下拉菜单不会显示出来,但您仍然可以通过在模拟指标中选择“顶部栏:无”来实现此目的。

Top Bar: None


1
那么它不是针对单个视图控制器的。 - jowie

10
在故事板视图中,只需选择NavigationController场景并取消选中“Shows Navigation Bar”(属性检查器)即可。

6
这适用于所有的子元素,但如果您只想隐藏一个子元素,则不起作用。 - jesses.co.tt

8

以下是使用 Swift 3 解决此问题的方法:

第一步。 使用属性检查器从Storyboard中隐藏导航栏: enter image description here

第二步。 在您的ViewController中添加以下代码:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Hide the navigation bar on the this view controller
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    // Show the navigation bar on other view controllers
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}

这只是Swift 3中与OP所展示的等效内容。这在Storyboard中不会隐藏导航栏。然而,在运行应用程序时,它会隐藏导航栏。 - PsychoMantis
@Tim,这就是它应该做的。 - Codetard
这不是原帖所问的。 - PsychoMantis
@Tim,你可能需要再读一遍问题。他提到导航栏仍然出现在Storyboard中,而他不想要它。 - Codetard
有人能告诉我如何在我的Storyboard中隐藏导航栏吗?我的代码在模拟器中运行得很好,但它仍然出现在我的Storyboard中。我已经阅读了这个问题,尽管它已经6年了。OP问如何在Storyboard中隐藏导航栏。 - PsychoMantis

5
Follow these step:    
    1: Go to storyboard
    2: Select navigation controller
    3: Goto Attribute inspector
    4: Under navigation controller bar visibility **Uncheck the Shows navigation Bar***

enter image description here


1
对于特定的ViewController,将顶部栏设置为none

enter image description here


这回答了OP的问题,但如果你正在浏览并尝试找到如何从Storyboard中隐藏特定视图控制器的导航栏(不仅仅是在查看Storyboard时),不幸的是这是不可能的。请参阅我对OP原始问题的评论(在顶部)以了解原因。 - Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接