在故事板中隐藏导航栏
Posted
技术标签:
【中文标题】在故事板中隐藏导航栏【英文标题】:Hide navigation bar in storyboard 【发布时间】:2012-05-16 14:15:37 【问题描述】:谁能告诉我如何在我的故事板中隐藏导航栏。我下面的代码在模拟器中运行时运行良好,但它仍然出现在我的故事板中,这真的让我很烦,因为它弄乱了我的图像位置。有人可以帮忙吗?
- (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];
【问题讨论】:
对于每个试图弄清楚如何从情节提要中隐藏特定视图控制器的导航栏的人......这是不可能的。 但是,这是有充分理由的。预期的方法是首先以编程方式简单地隐藏/显示导航栏(类似于self.navigationController?.setNavigationBarHidden(true, animated: animated
),然后在您的故事板中,为每个单独的视图控制器调整Simulated Metrics > Top Bar
,使其外观反映当前从您的代码中发生...
...因为这些模拟指标的目的是让您可以根据您还无法“看到”效果的代码来了解您的视图的外观。
【参考方案1】:
单击顶部栏的控制器导航到 Xcode 右侧的属性栏。有一个标记为 Top Bar 的下拉菜单(如上所示)将此下拉菜单更改为无。
【讨论】:
我认为这是第一个相同的答案。 它是在我打字时添加的 如果我想要每个视图控制器怎么办? 是否有人成功隐藏和显示每个视图控制器导航。 @VanDuTran 查看我对 OPs 原始问题的评论(上图)。【参考方案2】:您必须单击实际的导航控制器,而不是视图控制器。在视图控制器上,导航下拉菜单不会显示,但您仍然可以通过在 Simulated Metrics 中选择 Top Bar: none 来实现此目的。
【讨论】:
那么它不适用于单个视图控制器。【参考方案3】:在 Storyboard 视图中,只需选择 NavigationController 场景并取消选中 Shows Navigation Bar (Attributes Inspector)
【讨论】:
这适用于它的所有孩子——如果你只想隐藏一个就行不通【参考方案4】:使用 Swift 3 的解决方案:
第 1 步。 使用属性检查器从 Storyboard 中隐藏导航栏:
第 2 步。 将以下代码添加到您的 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)
【讨论】:
这只是 OP 所显示的 swift 3 等价物。这不会隐藏导航栏在故事板中。确实如此。但是,在运行应用程序时隐藏导航栏。 @Tim 这就是它应该做的。 这不是 OP 要求的。 @Tim 您可能想再次阅读该问题。他提到导航栏仍然出现在故事板中,这是他不想要的。 谁能告诉我如何在我的故事板中隐藏导航栏。下面的代码在模拟器中运行时运行良好**但它仍然出现在我的故事板中**我已经阅读了这个问题。尽管它已经 6 岁了。 OP 询问如何在故事板中隐藏导航栏。【参考方案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***
【讨论】:
【参考方案6】:对于特定的ViewController,设置topbar为none
【讨论】:
这回答了 OPs 的问题,但是如果您正在滚动并试图找到如何从情节提要中隐藏特定视图控制器的导航栏的答案(不仅仅是在查看情节提要时) ,不幸的是这是不可能的。请参阅我对 OPs 原始问题的评论(在顶部),了解为什么会这样。以上是关于在故事板中隐藏导航栏的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Interface Builder 预览故事板中显示导航栏(助理编辑器)