在纵向模式下更改UISplitViewController中的细节导航栏

时间:2016-08-17 11:35:14

标签: ios iphone swift ipad uisplitviewcontroller

我有一个UISplitViewController MasterViewControllerDetailViewController有自己的导航控制器。

这是我的故事板:

Current Storyboard for UISplitViewController

MasterViewControllerDetailViewController都可见时(iPhone 6+横向和iPad):

DetailViewController使用Detail Navigation Controller。这里的一切都很完美。

仅显示DetailViewController时(iPhone 6+人像和所有其他iPhone都包含横向和纵向):

DetailViewController仍然使用Detail Navigation Controllerself.navigationController返回Detail Navigation Controller)。但最重要的是,Master Navigation Controller的导航栏是可见的,而不是Detail Navigation Controller的导航栏。

我希望在纵向和横向模式下为每个设备尺寸使用DetailViewController的相同导航栏。 (主人导航栏和细节导航栏的样式不同。)

有没有办法在不声明名为currentlyVisibleNavigationController的hacky计算属性或在ViewControllers之间保留引用的情况下执行此操作?

1 个答案:

答案 0 :(得分:2)

要在UINavigationBar上下文中获取详细信息控制器的当前UISplitViewController对象,可以尝试以下操作:

let navigationBar = navigationController?.navigationController?.navigationBar ?? navigationController?.navigationBar