我在安装了 Xcode 4.5.1 的 Mt Lion 上运行。
默认情况下,当我构建并部署到 iOS 5.1 设备时,旋转设备时显示屏会旋转,但当我部署到 iOS 6 模拟器或运行 iOS 6 的 iPad 或 iPhone 时,它似乎不起作用。
我在这里缺少什么吗?
我在安装了 Xcode 4.5.1 的 Mt Lion 上运行。
默认情况下,当我构建并部署到 iOS 5.1 设备时,旋转设备时显示屏会旋转,但当我部署到 iOS 6 模拟器或运行 iOS 6 的 iPad 或 iPhone 时,它似乎不起作用。
我在这里缺少什么吗?
请阅读以下内容,希望对您有所帮助。(参考http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html)
Handling View Rotations
在iOS 6
中,您的应用支持在应用的 Info.plist 文件中定义的界面方向。A view controller can override the supportedInterfaceOrientations method to limit the list of supported orientations
. 一般情况下,系统只会在窗口的根视图控制器或呈现为填满整个屏幕的视图控制器上调用该方法;子视图控制器使用其父视图控制器为它们提供的窗口部分,并且不再直接参与有关支持哪些旋转的决策。应用程序的方向掩码和视图控制器的方向掩码的交集用于确定视图控制器可以旋转到哪些方向。
你可以覆盖一个视图控制器的 preferredInterfaceOrientationForPresentation,该视图控制器旨在以特定方向全屏显示。
在iOS 5 and earlier
中,UIViewController 类仅以纵向模式显示视图。为了支持其他方向,you must override the shouldAutorotateToInterfaceOrientation: method and return YES for any orientations your subclass supports
. 如果您的视图的自动调整大小属性配置正确,那么您可能只需要这样做。但是,UIViewController 类为您提供了额外的钩子来根据需要实现额外的行为。通常,如果您的视图控制器打算用作子视图控制器,它应该支持所有界面方向。
这个链接可能对你有帮助http://www.cocos2d-iphone.org/forum/topic/40721
上面的链接有一些有趣的评论->Try to override the shouldAutoRotate method on the rvc, and put the conditional there. As far as I have tested, the shouldAutoRotateToInterfaceOrientation isn't called on iOS6 even with all fixes applied, so I was forced to override several more methods.
请给我反馈,谢谢:)