1

我的应用程序完全是为 IOS6 设计的。我为 iPhone 使用一个 xib,为 iPad 使用另一个。我的 AppDelegate 设置了一个 TabBarController,尽管 TabBarController 本身没有类。TabBarController 有两个选项卡项,1 个 NavigationController,1 个 View Controller,每个都有自己的类。我希望 iPad 能够以纵向模式、倒置模式和正常模式运行。在 Xcode 中 Target 的摘要选项卡上,我支持将界面方向设置为 Portrait 和 Portrait Upside Down。

我对 iOS 6 的理解是你只需要把

- (NSUInteger)supportedInterfaceOrientations

在类的最高父控制器中,并设置您希望它使用的掩码以及所有要使用的子容器。所以,在导航控制器的根视图控制器中,我放了:

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskPortraitUpsideDown;
}

在每个子类中,我放了:

- (BOOL)shouldAutorotate{

    if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
    {

        return YES;

    }
    else
    {
        return NO;
    }


}

然后我将相同的两种方法放在第二个选项卡中,它只是一个视图控制器类。

我在我的 iPad 上安装了该应用程序,它在纵向模式下运行良好,但当我将其倒置时没有旋转。我退出应用程序并将 iPad 倒置,但当我再次启动应用程序时,它仍然停留在同一个位置。所以,我完全杀死了这个应用程序,并从头开始颠倒了它。启动画面是倒置的,但是当屏幕消失时,应用程序仍然只以纵向模式显示,导致显示倒置。

我错过了什么?

4

4 回答 4

2

单击 appName 选择目标,然后选择您想要支持的方向。谢谢

在此处输入图像描述

于 2013-01-06T06:26:43.117 回答
0

上面的代码非常适合 iOS 6 之前的版本。对于 iOS 6,您必须使用蒙版方向。如果您希望 iPad 中的所有视图旋转或仅旋转一些视图,您可以选择使用上述答案。如果您想对其进行硬编码,请在以下链接中查看我的答案以获取所有蒙版自动旋转的详细代码,或者仅旋转一个视图而让其他视图不旋转。无论如何这里是链接 iOS 6 supportedInterfaceOrientations 问题

上面的答案也为您提供了正确的解决方案,但如果您想学习如何对其进行编码,请查看我在上面链接中的答案。快乐编码。

于 2013-01-06T06:34:07.013 回答
0

旋转锁定是否启用?(如果您是 iOS 新手,请双击主页按钮,然后向右滑动:它是箭头形状的金属风格小按钮)。

于 2013-01-06T12:40:00.707 回答
0

如果您希望仅在纵向模式下运行您的应用程序,1. 选择您的目标。2. 在一般 -> 开发信息 -> 设备方向 取消选中所有其他方向。只应选中纵向模式。然后运行您的项目。

于 2016-02-02T14:34:31.657 回答