我有一个iPhone的iOS应用程序,可以在屏幕上显示信息。部署信息表明支持LandscapeLeft和LandscapeRight
当我使用LandscapeRight中的设备启动我的应用程序时,一切都很好,并将我的设备转为LandscapeLeft将我的整个图像恢复180度,显示的信息仍然正常。
现在,如果我使用我的设备转动启动应用程序在LandscapeLeft中,应用程序无论如何都会在Landscape Right中启动,我必须完全转动设备以检测到正确的方向。
基本上,如果我在ViewController viewDidLoad的开头添加代码:< / p>
if ([UIApplication sharedApplication].statusBarOrientation == UIDeviceOrientationLandscapeLeft)
{
NSLog(@"LandscapeLeft");
}
else if ([UIApplication sharedApplication].statusBarOrientation == UIDeviceOrientationLandscapeRight)
{
NSLog(@"LandscapeRight");
}
始终显示LandscapeRight。
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
如果我的设备方向没有物理变化,则不会调用。 有什么建议我怎么能发现真正的方向?感谢。
===编辑===
我刚发现一些有趣的东西。如果我将Launchscreen保留在.plist文件中(我将其删除)和相关的默认Launchscreen.xib,那么它可以正常工作。如何在没有启动画面的情况下正确拥有所需的行为?
答案 0 :(得分:0)
你必须检查.plist文件设置......
在您的应用程序&#34; Info.plist&#34;文件,使用UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight值添加UISupportedInterfaceOrientations键
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
有关更多信息,请参阅文档链接https://developer.apple.com/library/ios/technotes/tn2244/_index.html