我有一个UISplitViewController
,其布局如下,由一个主视图和详细视图控制器组成。
这适用于具有单个视图的基本拆分视图,但我需要支持UITableViewController
(主视图)中的多个segue,并且在数据传递之前不加载详细视图;否则应用程序会因可选错误而崩溃。
我尝试了这样的设置;
这会在ViewController
加载时加载空白UISplitViewController
作为详细视图,当选择行时,我有一个详细信息segue到其他视图控制器,它应该显示为详细视图在UISplitViewController
。
遗憾的是,这并不完全正确,所有数据都是在没有崩溃的情况下传递和加载的,但细节segues实际上是在分割视图的主视图窗口中加载视图控制器而不是详细视图。
有点像这样,
如何在从主视图UITableViewController
启动segue并在详细信息窗口中打开之前,是否有多个未加载的详细视图控制器?
这是MasterViewController的代码
override func viewDidLoad() {
super.viewDidLoad()
self.splitViewController!.delegate = self;
self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
self.extendedLayoutIncludesOpaqueBars = true
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true
}
答案 0 :(得分:8)
如果segues已经存在,那么尝试将segues从主视图中删除到其他详细视图,并使用细节segue重新创建它们。