在我的应用程序中,支持的方向是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方向支持来解决此问题。如果任何人有解决方案,请分享。
感谢您的帮助。
答案 0 :(得分:5)
我遇到了同样的问题,设置了初始界面方向' plist中的UIInterfaceOrientationLandscapeLeft没有工作,也没有在视图控制器的preferredInterfaceOrientationForPresentation中返回它。
为我解决这个问题的方法是重新排序支持的界面方向' plist中的数组将我想要的初始方向作为数组中的第一项。
答案 1 :(得分:0)
您是否在XCode中检查了项目的常规设置中的方向设置。
答案 2 :(得分:0)
将你的方法更改为自动转换到接口方向
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}