这个问题的实际标题比我能够容纳的要长:在iPhone 6 Plus上启动一个只支持竖屏方向的根视图控制器的应用程序,但其他情况下支持横向方向,在主屏幕处于横向方向时会导致一种僵局状态,即应用程序窗口处于横向方向,但设备处于竖向方向。简而言之,它看起来像这样:
重现步骤:
运行iOS 8.0的iPhone 6 Plus。
一个支持除倒置竖屏方向以外所有方向的plist的应用程序。
应用程序的根视图控制器是UITabBarController。
所有内容,选项卡控制器及其所有后代子视图控制器都从supportedInterfaceOrientations返回UIInterfaceOrientationMaskPortrait。
从iOS主屏幕开始。
将设备旋转到横向方向(需要iPhone 6 Plus)。
冷启动应用程序。
结果:界面方向错误。
我想不出其他强制使用纵向方向的方法,除非完全禁用横向方向,但这是不可能的:我们的Web浏览器模态视图控制器需要横向方向。
我甚至尝试了子类化UITabBarController并覆盖supportedInterfaceOrientations以返回仅限纵向的掩码,但这(即使使用上述所有步骤)也无法解决问题。