我有一个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? 我是否每次都需要实例化它?