iOS 8 – 应用程序不能正常旋转

我有一个最初为iOS 7.1开发的应用程序,现在我正在通过Xcode 6.1在iPad上进行testing。 在运行7.1或7.1模拟器的iPad上运行时,应用程序按预期运行。 在8.1 iPad或8.1模拟器上,似乎旋转处理不当。 我看到顶部的状态栏旋转,但应用程序本身不会改变。 我知道这是相关的旋转方法在​​iOS 8被弃用。我的问题是…现在是什么?

我还没有find任何文档提供了一个简明的答案,如何处理旋转使用新的iOS 8机制。 有没有办法像我在iOS 7中处理它们一样正常处理iOS 8中的旋转? 我甚至没有看到旧的旋转方法被调用,所以看起来好像这不仅仅是一种典型的“贬低”。 似乎他们已经完全取消了对这些方法的呼叫。

任何帮助或build议?

我有一个类似的问题,我通过从应用程序的信息属性列表中删除UIMainStoryboardFile和UIMainStoryboardFile〜ipad键来修复它

看看这个讨论https://devforums.apple.com/message/1064397#1064397

你在使用故事板吗? 如果是这样,你可能在你的application didFinishLaunchingWithOptions方法中有旧的代码。

尝试删除以下代码行和任何其他与UIWindow做:

 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

其他人则表示要删除你的plist文件中的行,但这不应该是必要的。

使用viewWillTransitionToSize:withTransitionCoordinator:像这样:

 - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; // Will rotate [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { // Will animate rotation } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) { // Did rotate }]; } 

在讨论这个问题的时候,你应该看一下WWDC 2014video“View Controller Advancements in iOS 8”。