ipad应用程序不会在IOS6中旋转
我有一个UISplitViewController ipad应用程序。它使用一个mainwindow.xib和我的子类RootView和DetailView控制器。它可以自动旋转至5.1。ipad应用程序不会在IOS6中旋转
我知道为ios6更改了界面。当我将新的旋转方法添加到我的细节和rootview类时,它仍然不旋转。
我调用了supportedInterfaceOrientations方法,但shouldAutorotate从不调用。
有谁知道如何解决这一问题?
(总是在学习,没有人能惹你周围的不好的另一个程序员感谢苹果。) 格里
自转在iOS的6改变在iOS 6中,不建议使用
UIViewController
的shouldAutorotateToInterfaceOrientation:
方法。取而代之,您应该使用supportedInterfaceOrientationsForWindow:
和shouldAutorotate
方法。更多的责任是转向应用程序和应用程序委托。现在,iOS容器(例如
UINavigationController
)不会咨询他们的孩子以确定他们是否应该自动旋转。默认情况下,应用程序和视图控制器支持的界面方向设置为iPad的成语为UIInterfaceOrientationMaskAll
,iPhone成语则为UIInterfaceOrientationMaskAllButUpsideDown
。视图控制器支持的界面方向可以随时间变化 - 即使应用程序支持的界面方向可能随时间而改变。无论何时设备旋转或每当视图控制器呈现全屏模式演示风格时,系统都会询问其支持的接口方向的最顶级全屏视图控制器(通常是根视图控制器)。此外,只有当此视图控制器从其方法返回YES时,才会检索支持的方向。系统将视图控制器支持的方向与应用支持的方向(由Info.plist文件或应用代理的
application:supportedInterfaceOrientationsForWindow:
方法确定)相交以确定是否旋转。系统通过将应用程序的
supportedInterfaceOrientationsForWindow:
方法返回的值与最顶级全屏控制器的supportedInterfaceOrientations
方法返回的值相交来确定是否支持方向。
setStatusBarOrientation:animated:
方法不完全弃用。它现在只在最顶级全屏视图控制器的supportedInterfaceOrientations
方法返回0时起作用。这使得调用者负责确保状态栏方向一致。
我知道这是一个拗口,但你可能还需要在项目的设置,查看支持的接口方向片:
尝试建立一个通知时,方向改变。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
然后实现orientationChanged函数内的旋转。
- (void)orientationChanged:(NSNotification *)notification {}
愚蠢的问题:你是否切换Xcode项目设置中的图标来启用旋转的方向? – 2013-05-14 00:23:10