应用程序始终在Landscape Left中启动

时间:2014-02-21 05:53:58

标签: ios iphone ios7 uiinterfaceorientation

在我的应用程序中,支持的方向是Landscape Right&风景左。它的单屏应用程序。在ViewController中,我添加了以下代码来限制方向。

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

-(BOOL)shouldAutorotate
{
    return YES;
} 

我的问题是每当应用程序在Landscape Left中启动时。如果设备位置右侧,则应用视图旋转180度,然后应用程序开始在右侧风景中工作。

如果设备位置为横向左侧,则没有问题。

注意:我正在测试iPod 5上的应用程序。

修改

经过一些观察,如果你只支持风景(即风景右和风景左),那么你将面临这个问题。应用程序将始终以plist中首先列出的方向打开(在我的情况下是Landscape Left)。

我通过删除Landscape Left方向支持来解决此问题。如果任何人有解决方案,请分享。

感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,设置了初始界面方向' plist中的UIInterfaceOrientationLandscapeLeft没有工作,也没有在视图控制器的preferredInterfaceOrientationForPresentation中返回它。

为我解决这个问题的方法是重新排序支持的界面方向' plist中的数组将我想要的初始方向作为数组中的第一项。

enter image description here

答案 1 :(得分:0)

您是否在XCode中检查了项目的常规设置中的方向设置。

enter image description here

答案 2 :(得分:0)

将你的方法更改为自动转换到接口方向

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}