如何防止我的 UISplitViewController 在旋转到纵向时显示 master VC?

How do I prevent my UISplitViewController from displaying the master VC when rotating to portrait?

我有一个 UISplitViewController 用来编辑一些文本。

流程基本是这样的:

  1. 用户创建了一条新笔记。
  2. 用户被转换到详细信息视图控制器以创建或编辑所述注释。
  3. 用户可以纵向或横向编辑文本。

问题是,当用户在详细视图控制器中横向编辑内容时,他突然将设备旋转到纵向,显示的 VC 将是主 VC 而不是细节 VC(见图 3)。我想留在细节 VC.

我正在查看 Apple 的 Notes.app,当您在编辑笔记时将设备旋转到纵向时,您将停留在细节处 VC 而不是返回到 Master。所以这肯定是可以的。

是否有特定的 属性 我需要为此修改?遗憾的是,我正在查看 the docs,但找不到任何相关内容。

我通常会在 SO 上提问 5 分钟后解决我的问题。

原来 splitViewController:collapseSecondaryViewController:ontoPrimaryViewController UISplitViewController 委托方法负责选择视图的 "collapse"。最初让我失望的是,我没有考虑回到肖像作为 "collapse"。

所以我用这个编辑了委托方法:

func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController:UIViewController!, ontoPrimaryViewController primaryViewController:UIViewController!) -> Bool {
    if let secondaryAsNavController = secondaryViewController as? UINavigationController {
        if let topAsDetailController = secondaryAsNavController.topViewController as? TextEditorViewController {
            if topAsDetailController.inEditMode {
                return false
            }
        }
    }
    return true
}

现在旋转到纵向时的文本编辑器视图 "won't collapse onto the master view"。