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

A.R*_*Roe 3 ipad uisplitviewcontroller ios swift

我有一个UISplitViewController具有以下布局,由单个主视图和详细视图控制器组成.

在此输入图像描述

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

我尝试过像这样的设置;

在此输入图像描述

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

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

有点像这样,

在此输入图像描述

如何在从主视图启动segue UITableViewController并在详细信息窗口中打开之前,是否有多个未加载的详细视图控制器?

这是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
}
Run Code Online (Sandbox Code Playgroud)

Ril*_*Dev 8

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