为什么 splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: 没有在 iPhone 6 Plus 上调用?

Why splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: is not called on iPhone 6 Plus?

我在我的应用程序中为 iPhoneiPad 实现了 UISplitViewController 的子类。当我将设备从 Landscape 方向旋转到 Portrait 方向时,将调用标题中提到的方法。除非我 运行 iPhone 6 Plus 上的应用程序,否则它真的很好用。为什么这里没有调用这个方法?

如何使此方法起作用?

当我在 iPhone 6 Plus 上启动应用程序时,两个方向上的一切都很好。但问题是当我将 iPhone 6 PlusLandscape 旋转到 Portrait 时。我的导航控制器无法正常工作。

这就是我的意思:

iPhone 5s 人像

iPhone 5s 人像当我 select 位置

iPhone 5 秒横向 selected 位置

iPhone 横向转纵向5秒

iPhone 6加人像

iPhone 6 加人像当我 select 位置

iPhone 6 加景观与 selected 位置

iPhone 6 加上当我从横向旋转到纵向时 this is a problem 因为我的方法splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: 没有被调用。 UINavigationController 那个时候是不行的。当我 select 位置没有任何反应。

class PBOSplitViewController: UISplitViewController, UISplitViewControllerDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()

        preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
        delegate = self
    }

    func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController!, ontoPrimaryViewController primaryViewController: UIViewController!) -> Bool {
        return false
    }
}

我在 Storyboard 中设置了我的 SplitViewController。

iPhone 6+ 屏幕更大,在某些方面被视为 iPad。 iPhone 6+ 上的拆分视图控制器将尝试像在 iPad 上一样显示主窗格和详细信息窗格,除非应用程序在 "Zoomed Display Mode".

NSHipster 有一篇文章对此进行了更详细的解释:http://nshipster.com/uisplitviewcontroller/