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

时间:2015-02-28 21:23:36

标签: ios uikit autolayout uisplitviewcontroller size-classes

我有UISplitViewController用于编辑某些文字。

流程基本上是这样的:

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

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

    我正在查看Apple的Notes.app,当您在编辑注释时将设备旋转为纵向时,您将保留在详细VC而不是返回Master。所以这肯定是可能的。

    我需要为此修改一个特定的属性吗?可悲的是,我在看the docs而我找不到任何相关内容。

1 个答案:

答案 0 :(得分:2)

在问我们问题后5分钟解决我的问题是典型的。

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

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

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
}

现在旋转到肖像时,文本编辑器视图“不会折叠到主视图”。