我有:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
在我所有的视图控制器中,在应用程序摘要中,所有旋转均已选中,在info.plist中,所有旋转均已添加到支持的键中。我什至有:
autoresizesSubviews = YES;
添加到所有视图控制器中,以防万一,因为我没有使用笔尖。
现在,这里变得很奇怪。在iPad上,如果在打开应用程序之前设备处于横向状态,则打开应用程序并加载一个子视图,该子视图将旋转为横向状态,直到我强制关闭应用程序并重新启动它为止。我尝试删除该应用程序并重建,但我已经在多个物理设备上进行了尝试,但仍未更改。我什至在shouldAutoRotate方法中添加了一个NSLog调用,但从未调用过它。我什至尝试使用虚拟nag控制器对UINavigationController进行子类化,并在虚拟类中添加shouldAutoRotate方法。
最后,如果将其设置为横向,则仅状态栏位于横向位置,而视图的其余部分为标准人像。
关于从哪里开始进行诊断的任何想法?
最佳答案
您是否在self.window.rootViewController
的AppDelegate
中设置了didFinishLaunchingWithOptions
?我注意到,在iOS 5及更低版本中,即使您未设置rootViewController
,应用程序仍可正确旋转,但是您必须在iOS 6中进行设置。
可能还值得注意的是,iOS 6中的自动旋转发生了变化(略有变化?),而不仅仅是一种方法(shouldAutorotateToInterfaceOrientation
),现在有两种方法(shouldAutorotate
和supportedInterfaceOrientations
)用于自动旋转行为。