横向iOS 9的初始界面定位

ker*_*erd 5 iphone orientation uiinterfaceorientation ios ios9

技术说明TN2244:在横向状态下启动iPhone应用程序:

UISupportedInterfaceOrientations键的值确定应用程序启动时状态栏的位置.在iOS 7及更低版本中,如果存在UIInterfaceOrientationPortrait值,则状态栏将始终定位为纵向.否则,状态栏将根据UISupportedInterfaceOrientations键下显示的第一个方向定位.

因此,在iOS 8中,UIInterfaceOrientationLandscape首先放入UISupportedInterfaceOrientations列表以让您的应用程序在Landscape中启动是完全可以的.

它在iOS 9中不再起作用.UIInterfaceOrientationPortrait任何位置的列表中强制应用程序以肖像开始.

有没有已知的解决方法?我需要我的应用程序从Landscape开始.

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

mat*_*att 3

\n

将 UIInterfaceOrientationPortrait 放在列表中的任何位置都会强制应用程序以纵向启动。

\n
\n\n

这是绝对正确的\xe2\x80\x94 非常好的侦探工作。我做了很多实验才弄清楚这一点!这相对于iOS 8来说无疑是一个巨大的改变。你把情况总结得很好。

\n\n

幸运的是,解决方法很简单。在您的Info.plist中,仅包含两个横向方向。现在应用程序将启动到第一个。

\n\n

现在application:supportedInterfaceOrientationsForWindow:在应用程序委托中实现以返回全部。这样,当需要显示纵向视图控制器时,这样做就是合法的。

\n\n

换句话说,将Info.plist视为启动应用程序需要了解的内容,以及正在运行的application:supportedInterfaceOrientationsForWindow:应用程序需要了解的内容。

\n