为什么splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:在iPhone 6 Plus上没有被调用?
我在我的应用程序中为iPhone
和iPad
实现了UISplitViewController
子类。 当我将设备从Landscape
旋转到Portrait
时,将调用标题中提到的方法。 除非我在iPhone 6 Plus上运行应用程序,否则它的效果非常好。 为什么不在那里调用这种方法?
如何使这种方法有效?
当我在iPhone 6 Plus
上启动应用程序时,两个方向的一切都很好。 但问题是当我将iPhone 6 Plus
从Landscape
旋转到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/