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

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

如何使这种方法有效?

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

这就是我的意思:

iPhone 5s人像
在此处输入图像描述

当我选择位置时,iPhone 5s纵向

在此处输入图像描述

iPhone 5s横向选定位置

在此处输入图像描述

当我从Landscape旋转到Portrait时,iPhone 5s

在此处输入图像描述

iPhone 6 Plus Portrait

在此处输入图像描述

选择位置时,iPhone 6 Plus纵向

在此处输入图像描述

iPhone 6 Plus横向选定位置

在此处输入图像描述

当我从Landscape旋转到Portrait时iPhone 6 Plus this is a problem因为我的方法splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:没有被调用。 那时的UINavigationController不起作用。 当我选择位置时没有任何反应。

在此处输入图像描述

 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上一样显示主窗格和细节窗格。

NSHipster有一篇文章更详细地解释了这一点: http ://nshipster.com/uisplitviewcontroller/