UISplitViewController以纵向模式获取错误的详细信息ViewController

时间:2016-07-26 11:54:49

标签: ios swift uisplitviewcontroller uiinterfaceorientation

我有一个UISplitViewController的扩展,用于获取Details和Master ViewControllers。 用于将数据从Master传递到详细信息。

extension UISplitViewController {

/// returns the details UIViewController
var details: UIViewController {
    get {

        if let detailsNavigation = viewControllers.last as? UINavigationController {
            return detailsNavigation.viewControllers.first!
        } else {
            return viewControllers.last!
        }
    }
}

/// returns the master UIViewController
var master: UIViewController {
    get {

        if let masterNavigation = viewControllers.first as? UINavigationController {
            return masterNavigation.viewControllers.first!
        } else {
            return viewControllers.first!
        }
    }
}
}

在景观中一切都很好。

在纵向中,数据无法通过,细节也不会出现在屏幕上。

另外,当我记录splitViewController的ViewControllers时。

在肖像画中,我获得了大师和细节的主人(来自我的扩展名)

有什么建议吗?

感谢。

更新 -

当我打印出splitViewController时 在肖像模式我得到

(lldb) po splitViewController!.viewControllers
▿ 1 elements
  - [0] : <UINavigationController: 0x7fa9ce014400> 

在横向模式中我得到:

(lldb) po splitViewController!.viewControllers
▿ 2 elements
  - [0] : <UINavigationController: 0x7fa9ce014400>
  - [1] : <UINavigationController: 0x7fa9ce02fc00>

详情消失在哪里?

更新2 -

documentation中它表示当屏幕上只有一个ViewController时,viewControllers属性只有一个ViewController。

那么我怎样才能获得DetailsViewController? 我是否每次都需要实例化它?

0 个答案:

没有答案