我有:

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


}

在我所有的视图控制器中,在应用程序摘要中,所有旋转均已选中,在info.plist中,所有旋转均已添加到支持的键中。我什至有:

autoresizesSubviews = YES;


添加到所有视图控制器中,以防万一,因为我没有使用笔尖。

现在,这里变得很奇怪。在iPad上,如果在打开应用程序之前设备处于横向状态,则打开应用程序并加载一个子视图,该子视图将旋转为横向状态,直到我强制关闭应用程序并重新启动它为止。我尝试删除该应用程序并重建,但我已经在多个物理设备上进行了尝试,但仍未更改。我什至在shouldAutoRotate方法中添加了一个NSLog调用,但从未调用过它。我什至尝试使用虚拟nag控制器对UINavigationController进行子类化,并在虚拟类中添加shouldAutoRotate方法。

最后,如果将其设置为横向,则仅状态栏位于横向位置,而视图的其余部分为标准人像。

关于从哪里开始进行诊断的任何想法?

最佳答案

您是否在self.window.rootViewControllerAppDelegate中设置了didFinishLaunchingWithOptions?我注意到,在iOS 5及更低版本中,即使您未设置rootViewController,应用程序仍可正确旋转,但是您必须在iOS 6中进行设置。

可能还值得注意的是,iOS 6中的自动旋转发生了变化(略有变化?),而不仅仅是一种方法(shouldAutorotateToInterfaceOrientation),现在有两种方法(shouldAutorotatesupportedInterfaceOrientations)用于自动旋转行为。

09-27 03:07