iOS 8 - 应用程序未正确旋转

Posted

技术标签:

【中文标题】iOS 8 - 应用程序未正确旋转【英文标题】:iOS 8 - App not rotating appropriately 【发布时间】:2014-10-24 17:52:13 【问题描述】:

我有一个最初为 ios 7.1 开发的应用程序,我现在正在通过 Xcode 6.1 在 iPad 上进行测试。在运行 7.1 的 iPad 或 7.1 模拟器上运行时,应用程序按预期运行。在 8.1 iPad 或 8.1 模拟器上,似乎没有正确处理旋转。我看到顶部的状态栏在旋转,但应用程序本身并没有改变。我知道这与 iOS 8 中不推荐使用的轮换方法有关。我的问题是......现在是什么???

我还没有找到任何文档来提供关于如何使用新的 iOS 8 机制处理旋转的简明答案。有什么方法可以优雅地处理 iOS 8 中的旋转,就像我在 iOS 7 中处理它们一样?我什至没有看到旧的轮换方法被调用,所以看起来这不仅仅是典型的“弃用”。似乎他们完全消除了对这些方法的调用。

有什么帮助或建议吗?

【问题讨论】:

我注意到仅设置了 PList 支持的方向列表中的“第一个”,然后没有任何变化。我重新排列它们以确保它。 【参考方案1】:

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

尝试删除以下代码行以及与UIWindow 相关的任何其他代码:

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

其他人说要从您的 plist 文件中删除行,但这不是必需的。

【讨论】:

我没有那一行,但我确实有一行在我的窗口上设置了 rootViewController。必要,因为故事板需要加载。 谢谢,这绝对是我遇到的问题。删除该行解决了问题。 感谢 ChrisJP,您为我节省了大量时间。 哇。这让我抓狂。非常感谢您的解决方案! 哇。多么容易被忽视的事情。谢谢 ChrisJP。【参考方案2】:

我遇到了类似的问题,我通过从应用的信息属性列表中删除 UIMainStoryboardFile 和 UIMainStoryboardFile~ipad 键来修复它

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

【讨论】:

哇,这拯救了我的一天(以及无数小时的无知)!编写了一个没有情节提要的应用程序,所有视图控制器都是以编程方式创建的。适用于所有手机和 ipad,仅适用于 iPad3 (iOS8.2),屏幕不旋转。删除单行解决了这个问题。非常感谢,伙计!【参考方案3】:

像这样使用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 2014 视频“iOS 8 中的视图控制器改进”,其中讨论了这一点。

【讨论】:

我尝试将它添加到我的视图控制器中,但没有看到它被调用。我还需要做些什么来启用它吗? @Shadowman 你在用故事板吗? Fabrice 的回答似乎描述了在 iOS 8.1 中使用故事板的应用程序的轮换问题。我没有遇到这个问题可能是因为我没有使用故事板。 是的,我正在使用情节提要。我会调查他的回答。 是的,我也在用故事板,遇到这个问题,谁能帮忙。

以上是关于iOS 8 - 应用程序未正确旋转的主要内容,如果未能解决你的问题,请参考以下文章

将旋转到 iOS 8 上未调用的界面方向

自定义 UIWindows 在 iOS 8 中无法正确旋转

旋转矩阵未正确应用于向量

iOS 8 今日小部件 - SLComposeViewController 未正确显示

在 iPad 上旋转 UITableView 后,UITableViewCell 附件未正确定位

在 iOS8 中未调用 UIViewController 设备旋转委托方法