【发布时间】: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