1

当我在 Xcode 4.5 上为 IOS 5 创建 Ipad 应用程序时遇到横向问题,我看到的相关问题很少,但大多数与我的情况相反。

我不使用任何代码,就像Bool autorotate我只是在界面生成器上选择横向一样。取消选择使用自动布局。

当我创建应用程序时,我在项目文件夹(蓝色图标)上选择 IOS Deployment Target 5.1

在此处输入图像描述

构建设置是架构 Base Sdk 是 IOS 6

在此处输入图像描述

在情节提要中,导航控制器设置为横向,界面文档设置为 5.1

在此处输入图像描述

在 IOS 6 模拟器环境中运行良好:

在此处输入图像描述

但在 IOS 5.1 Simulator 环境中不起作用且迷失方向

在此处输入图像描述

我错过了什么?我怎样才能使这项工作同时适用于 5.1 和 6 版本?

编辑=====

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (interfaceOrientation==UIInterfaceOrientationLandscapeRight)
        return YES;

    return NO;
}

上面的代码也不起作用。它仍然是一样的。

4

3 回答 3

2

您应该在视图控制器上覆盖 shouldAutorotateToInterfaceOrientation: 并为您想要的方向返回 YES,例如

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

}

于 2012-11-20T17:14:55.703 回答
1

在 IOS 6.0 之前,您必须在项目的所有 ViewController 上覆盖此方法。在 IOS 6 中,Apple 终于纠正了这种行为

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

}

于 2012-11-20T17:21:57.803 回答
0

使用以下代码更新所有视图控制器。

适用于模拟器 5.0 及更高版本。

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskAll;
}

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}
于 2013-05-21T19:16:41.620 回答