iOS 9中的初始界面方向为横屏

5

技术笔记TN2244:在横屏启动您的iPhone应用程序指出:

UISupportedInterfaceOrientations键的值确定应用程序启动时状态栏的位置。在iOS 7及以下版本中,如果存在UIInterfaceOrientationPortrait值,则状态栏始终会定位为竖屏方向。否则,状态栏将根据出现在UISupportedInterfaceOrientations键下的第一个方向来定位。

因此,在iOS 8中,在UISupportedInterfaceOrientations列表中首先放置UIInterfaceOrientationLandscape是完全可以的,以便让您的应用程序在横屏模式下启动。

但在iOS 9中,这不再适用。在列表中的任何位置都会有UIInterfaceOrientationPortrait,强制应用程序在纵向模式下启动。

问题

是否已知有解决方法?我需要我的应用程序以横屏模式启动。

注意:使用viewControllers' supportedInterfaceOrientations()方法不是一个选项,因为它在LaunchScreen呈现后生效。

1个回答

3
在列表中任何位置都有UIInterfaceOrientationPortrait会强制应用程序在纵向模式下启动,这是绝对正确的 - 做得很好。我进行了大量实验才弄清楚这一点!这与iOS 8相比确实是一个巨大的变化。您已经很好地总结了情况。幸运的是,解决方法很简单。在您的Info.plist中,仅包括两个横向方向。现在应用程序将启动到其中一个方向。现在在应用委托中实现application:supportedInterfaceOrientationsForWindow:以返回全部。这样,当需要显示纵向视图控制器时,就可以合法地这样做。换句话说,将Info.plist视为启动应用程序需要知道的内容,将application:supportedInterfaceOrientationsForWindow:视为正在运行的应用程序需要知道的内容。

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