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 今日小部件 - SLComposeViewController 未正确显示