UISplitViewController详细视图控制器在主视图窗口中加载

时间:2016-03-30 15:27:05

标签: ios swift ipad uisplitviewcontroller

我有一个UISplitViewController,其布局如下,由一个主视图和详细视图控制器组成。

enter image description here

这适用于具有单个视图的基本拆分视图,但我需要支持UITableViewController(主视图)中的多个segue,并且在数据传递之前不加载详细视图;否则应用程序会因可选错误而崩溃。

我尝试了这样的设置;

enter image description here

这会在ViewController加载时加载空白UISplitViewController作为详细视图,当选择行时,我有一个详细信息segue到其他视图控制器,它应该显示为详细视图在UISplitViewController

遗憾的是,这并不完全正确,所有数据都是在没有崩溃的情况下传递和加载的,但细节segues实际上是在分割视图的主视图窗口中加载视图控制器而不是详细视图。

有点像这样,

enter image description here

如何在从主视图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
}

1 个答案:

答案 0 :(得分:8)

如果segues已经存在,那么尝试将segues从主视图中删除到其他详细视图,并使用细节segue重新创建它们。