Swift:强制在模态中显示导航栏
Posted
技术标签:
【中文标题】Swift:强制在模态中显示导航栏【英文标题】:Swift: Force show Navigation Bar in Modal 【发布时间】:2015-04-08 16:29:39 【问题描述】:我的 Swift 项目中有以下 Storyboard Segue:
动画是正确的,但是目标视图控制器中没有导航栏。我想强制目标视图控制器有一个导航栏。我在目标视图控制器中尝试过:
override func viewWillAppear(animated: Bool)
super.viewWillAppear(true)
navigationController?.navigationBar.hidden = false
或者:
override func viewWillAppear(animated: Bool)
self.navigationController?.setNavigationBarHidden(false, animated: true)
但它拒绝显示任何导航栏。
如何执行垂直转场(如“Cover Vertical”)但仍在目标视图控制器中显示半透明导航栏?
编辑:目标视图控制器的我的属性检查器:
【问题讨论】:
您的目的地控制器是否嵌入在导航控制器中?你的 segue 是导航控制器还是视图控制器? (是self.navigationController
nil
?)
println(self.navigationController)
在我的目标视图控制器中打印:Optional(<UINavigationController: 0x12de38070>)
- 我的原始视图控制器嵌入在导航控制器中。
【参考方案1】:
尝试将 Segue 创建到导航控制器而不是视图控制器。导航栏仅针对导航堆栈中的视图控制器显示。在您的情况下,源视图控制器似乎在导航堆栈中,但不在呈现的视图控制器中。试试这样的:
【讨论】:
这很疯狂,但它有效)谢谢。很奇怪,在我之前的一个项目中,我有类似的结构,没有这个中间导航控制器,它在那里工作。我的意思是它默认显示导航栏 简单提示:选择您的模态视图,Xcode Editor 菜单 > Embedded In > Navigation Controller。 :-) 啊,解决了。其中一个故事板怪癖以上是关于Swift:强制在模态中显示导航栏的主要内容,如果未能解决你的问题,请参考以下文章