Ios 为什么iPhone 6 Plus上不调用splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:?

Ios 为什么iPhone 6 Plus上不调用splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:?,ios,uisplitviewcontroller,iphone-6-plus,Ios,Uisplitviewcontroller,Iphone 6 Plus,我在我的应用程序中为iPhone和iPad实现了UISplitViewController的子类。当我将设备从横向旋转到纵向方向时,会调用标题中提到的方法。除非我在iphone6plus上运行这个应用程序,否则它的效果非常好。为什么不在那里调用此方法 如何使此方法起作用 当我在iphone6plus上启动应用程序时,在两个方向上都很好。但问题是当我将iphone6plus从横向旋转到纵向时。我的导航控制器不能正常工作 这就是我的意思: iPhone 5s人像 当我选择位置时iPhone 5s的

我在我的应用程序中为
iPhone
iPad
实现了
UISplitViewController
的子类。当我将设备从
横向
旋转到
纵向
方向时,会调用标题中提到的方法。除非我在iphone6plus上运行这个应用程序,否则它的效果非常好。为什么不在那里调用此方法

如何使此方法起作用

当我在
iphone6plus上启动应用程序时,在两个方向上都很好。但问题是当我将iphone6plus从
横向
旋转到
纵向
时。我的导航控制器不能正常工作

这就是我的意思:

iPhone 5s人像

当我选择位置时iPhone 5s的肖像

iPhone 5s的选定位置

当我从横向旋转到纵向时,iPhone 5s

iphone6plus人像

当我选择位置时iPhone 6 Plus人像

iPhone 6 Plus的选定位置

当我从横向旋转到纵向时,这是一个问题
,因为我的方法
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
    }
}


我在故事板中设置了SplitViewController。

iPhone 6+屏幕更大,在某些方面被视为iPad。iPhone 6+上的拆分视图控制器将尝试以类似于iPad的方式显示主窗格和详细窗格,除非应用程序处于“缩放显示模式”


Nhipster有一篇文章更详细地解释了这一点:

我仍然不知道如何解决这个问题。有可能在iPhone 6 Plus上保持相同的行为吗?@Bartłomiejsemanńczyk尝试使用UISplitViewControllers
preferredDisplayMode
强制您想要的布局,我也这样做了,但它仍然不能正常工作。我认为这是您所说的“缩放显示模式”的问题,但在模拟器中没有这样的选项。@Bartłomiejsemanńczyk从您更新的答案和您的评论来看,不清楚什么不起作用,什么是预期的。请尽量具体一点。我用截图更新了答案。你能看看吗?谢谢。我试图强制splitViewController调用此方法,但没有帮助