ios - keyWindow = nil 仅在 iPad 上

标签 ios ipad uiwindow uiapplication keywindow

我在 iPad 上使用应用程序 keyWindow 时遇到问题。

我为 iPhone 设计了应用程序,后来通过设置设备系列并添加新的 iPad Storyboard来添加 iPad 支持。 到目前为止一切都很好,我可以在 iPad 上打开该应用程序,甚至界面也显示为我为 iPad 定制的。

现在问题来了: 我不知道为什么,但我的应用程序的 iPad 版本没有 keyWindow。 我需要它,因为我在开始时显示一个加载对话框,该对话框应该锁定屏幕以进行用户交互,所以我将其添加到主窗口。在 iPhone 上这工作正常。

我发现“[UIApplication sharedApplication].keyWindow”给了我null,但仅限于iPad,而“[[UIApplication sharedApplication].windows objectForKey:0]”给了我window对象,它当然必须存在,因为该应用程序显示完整的用户界面。

ipad和iphone的源文件当然是一模一样的,但是我想我后来添加iPad支持时漏掉了一些东西......

我已经尝试将应用程序委托(delegate)中的窗口对象手动设置为 makeKeyAndVisible,但没有成功。 ([self.window makeKeyAndVisible];)

有人知道我必须做什么才能使其正常工作吗?

亲切的问候

最佳答案

好的,我自己解决了。 我必须将 makeKeyAndVisible 方法应用到我想将其作为 keyWindow 访问的主窗口。我不知道为什么它在应用程序委托(delegate)中不起作用,也不知道为什么我必须为 iPad 而不是 iPhone 手动设置它,但它现在可以工作了。

如果有人知道为什么请随时启发我。

关于ios - keyWindow = nil 仅在 iPad 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175922/

相关文章:

c# - 在同一个 UIViewController 中的第一个 UITableView 的 RowClick 上绑定(bind)第二个 UITableView - ios Xamarin

iphone - SpriteKit - TouchesMoved 继续报告 Sprite 外部的触摸?

iOS - [UIView setAnimationDidStopSelector :@selector(animationDidStop:finished:context:)] called too soon

ios - 无法在标签栏上找到随机崩溃的根本原因

iOS AirPlay 第二 screen 教程

ios5 - iOS : Programmatically creating UIWindow results in wrong position

ios - 添加 subview ,然后使其在应用程序顶部可见

ios - firebase 服务器可以通过用户设置对用户设备进行分组吗?

ios - 奇怪的 UITableView 错误 : "Assertion Failure" on dequeuing static cells in storyboard

ios - CAShapeLayer 阴影