关于iPhone 6 Plus启动横屏的问题
iOS
遇到了什么问题
我们做的App在6 Plus上测试时,发现了一个Bug。
如果6 Plus处于横屏状态,即整个spring board处于横屏状态的时候,启动App,那么App的画面会发生崩坏。
类似于这样
【图片】
App情况
绝大多数的ViewController只支持Portrait方向,仅有两个文件预览的Controller可以支持横屏。
原先做法
- 在info.plist文件中,声明支持Portrait, LandScape Left, LandScape Right 3个方向。
- 定义一个Protocol -- MultiOrientationSupport,这个Protocol中没有任何方法。
- 在想要支持多方向的ViewController上,声明实现该协议。
- 在RootViewController中实现shouldRotate 和 supportedOrientation 两个方法。
判断顶部的ViewController是否实现该协议,而返回不同值。
解决办法
- 在info.plist文件中,仅声明支持Portrait方向。
- 在UIApplicationDelegate中,实现 application:supportedInterfaceOrientationsForWindow:方法,返回支持UIInterfaceOrientationMaskAllButUpsideDown。
后记
估计App还没有完全启动时,会先看info.plist文件中,是否支当前的启动方向。如果支持,则用当前方向启动App。