当LandscapeLeft中的设备时,iOS应用程序在LandscapeRight中启动

时间:2015-01-21 11:21:28

标签: ios iphone orientation landscape

我有一个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,那么它可以正常工作。如何在没有启动画面的情况下正确拥有所需的行为?

1 个答案:

答案 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