【问题标题】:iPad App Portrait Only?仅 iPad 应用肖像?
【发布时间】:2013-01-06 06:15:05
【问题描述】:

我的应用完全是为 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 倒置,但当我再次启动应用程序时,它仍然停留在同一个位置。所以,我完全杀死了这个应用程序,并从头开始颠倒了它。启动画面是倒置的,但是当屏幕消失时,应用程序仍然只以纵向模式显示,导致显示倒置。

我错过了什么?

【问题讨论】:

  • 检查我的答案中的链接以获取必要的代码。

标签: ios xcode ipad uitabbarcontroller autorotate


【解决方案1】:

点击 appName 选择 Target 并选择您想要支持的方向。谢谢

【讨论】:

  • 如果您阅读该问题,您会看到我所说的“在 Xcode 中 Target 的摘要选项卡上,我支持将界面方向设置为 Portrait 和 Portrait Upside Down。”
  • 是的,但这就是您所要做的全部。不要实现任何其他轮换代码。
  • 我已将其设置为仅纵向,但我在 iOS 8 中的通用应用程序仍会自动旋转。
  • 请检查您的项目 info.plist 选项集中在“支持的界面方向”@coolcool1994
  • 在 info.plist 中修改“支持的界面方向”有效!我还有一个问题:在您只允许纵向(按下主页按钮)之后,有没有一种方法可以让您在根导航控制器中制作一个,并且只有一个视图控制器具有横向方向?如果我想要这个,我必须在 info.plist 的“支持的界面方向”下包含横向对象吗?
【解决方案2】:

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

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

【讨论】:

  • 所以你是说 -(BOOL) shouldAutorotate 不需要?
  • 我只在我想关闭旋转并将某个视图设置为纵向并将其余视图设置为另一个旋转时使用它。例如视图 1 纵向、视图 2 横向和所有其他视图。否则,我只需将旋转设置为是,它在 iPad 和 iPhone 上都可以正常工作。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    如果您想让您的应用程序仅在纵向模式下运行,那么, 1. 选择您的目标。 2.在General -> Development Info -> Device Orientation 取消选中所有其他方向。应该只选中纵向模式。然后运行您的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2016-01-29
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      相关资源
      最近更新 更多