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

6
我在我的应用程序中实现了UISplitViewController的子类,适用于iPhoneiPad。当我将设备从横向方向旋转到纵向方向时,标题中提到的方法被调用。它在除了iPhone 6 Plus以外的所有设备上都运行得非常好。为什么这个方法在iPhone 6 Plus上没有被调用呢?
要让这个方法起作用,该怎么办?
当我在iPhone 6 Plus上启动应用程序时,在两种方向上一切都很顺利。但是问题是当我将iPhone 6 Plus横向旋转到纵向时。我的导航控制器不会像预期的那样工作。
这就是我的意思: iPhone 5s 竖屏 enter image description here 当我选择位置时的 iPhone 5s 竖屏 enter image description here 带有所选位置的 iPhone 5s 横屏 enter image description here 当我从横屏旋转到竖屏时的 iPhone 5s enter image description here iPhone 6 Plus 竖屏 enter image description here 当我选择位置时的 iPhone 6 Plus 竖屏 enter image description here 带有所选位置的 iPhone 6 Plus 横屏 enter image description here 当我从横屏旋转到竖屏时的 iPhone 6 Plus 这是一个问题,因为我的方法splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:没有被调用。此时的UINavigationController不起作用。当我选择位置时,什么也不会发生。 enter image description here
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。


我试图强制splitViewController调用此方法,但它没有帮助。 - Bartłomiej Semańczyk
1个回答

5
http://nshipster.com/uisplitviewcontroller/


我仍然不知道如何解决这个问题。在iPhone 6 Plus上保持相同的行为是否可能? - Bartłomiej Semańczyk
@BartłomiejSemańczyk 尝试使用UISplitViewController的preferredDisplayMode属性来强制设置所需的布局。详细信息请参考https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/#//apple_ref/occ/instp/UISplitViewController/preferredDisplayMode - Nikola Lajic
我也尝试了这个方法,但它仍然不能正常工作。我认为这是一个“缩放显示模式”的问题,就像你说的那样,但模拟器中没有这样的选项。 - Bartłomiej Semańczyk
根据您更新的答案和评论,目前不清楚哪些部分出了问题以及期望的结果是什么。请尽量具体地说明。 - Nikola Lajic
@BartłomiejSemańczyk 默认情况下,分割视图控制器仅在iPhone 6+(和平板电脑)上显示并且在旋转到纵向模式后仍保持在详细视图中。因此,我猜测这与您的自定义有关。请发布您用于设置和编辑分割视图控制器的代码。 - Nikola Lajic
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接