我有一个UISplitViewController
MasterViewController
和DetailViewController
有自己的导航控制器。
这是我的故事板:
当MasterViewController
和DetailViewController
都可见时(iPhone 6+横向和iPad):
DetailViewController
使用Detail Navigation Controller
。这里的一切都很完美。
仅显示DetailViewController
时(iPhone 6+人像和所有其他iPhone都包含横向和纵向):
DetailViewController
仍然使用Detail Navigation Controller
(self.navigationController
返回Detail Navigation Controller
)。但最重要的是,Master Navigation Controller
的导航栏是可见的,而不是Detail Navigation Controller
的导航栏。
我希望在纵向和横向模式下为每个设备尺寸使用DetailViewController
的相同导航栏。 (主人导航栏和细节导航栏的样式不同。)
有没有办法在不声明名为currentlyVisibleNavigationController
的hacky计算属性或在ViewControllers之间保留引用的情况下执行此操作?
答案 0 :(得分:2)
要在UINavigationBar
上下文中获取详细信息控制器的当前UISplitViewController
对象,可以尝试以下操作:
let navigationBar = navigationController?.navigationController?.navigationBar ?? navigationController?.navigationBar