如何正确处理 nil UIApplication.sharedApplication().keyWindow

2023-11-25

当。。。的时候viewDidLoad称为视图应该被加载。

但我总是崩溃UIApplication.sharedApplication().keyWindow为零...

我应该把我的代码放在哪里,以便在加载视图后调用它,而不是每次用户回来时调用它(因此我已排除 viewWillAppear)?


情况一:- 手动的UIWindow在应用程序的委托中创建

您可能以某种方式添加了UIViewController to a UIWindow在将其设置为键之前。

你应该打电话window.makeKeyAndVisible()创建窗口后在应用程序的委托中。

情况2:- 自动故事板实例化

系统读取你的故事板,初始化根视图控制器,通过调用来准备它viewDidLoad and viewWillAppear,将其添加到窗口并显示该窗口。

发生的情况是系统不能只是将窗口设置到前面并将视图控制器动画到其上,因为它是第一个视图控制器,并且您不是推送/弹出导航控制器。和viewDidLoad可能需要一些时间...所以Default.png同时显示,直到视图控制器准备就绪。

然后它调用viewDidAppear,当它实际出现时。所以这就是你的地方should能够访问keyWindow

情况3:

您处于一种奇怪的情况,您有窗口,但当前没有一个窗口是“关键”窗口,但您迫切需要访问该窗口。

Call UIApplication.sharedApplication().windows,看看它是否不为空并取第一个元素。UIApplication.sharedApplication().delegate?.window也可能有一个值,但通常只有当窗口是key已经。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何正确处理 nil UIApplication.sharedApplication().keyWindow 的相关文章

随机推荐

  • CORS $.ajax 会话 cookie (access-control-allow-credentials & withCredentials=true)

    我意识到这个问题已经被问了十几次或更多次 给出的每个答复都表明我做得正确 但也许我遗漏了一些东西 AJAX 提供 CORS 请求 就像这样 ajax url someotherdomain com type post data key va
  • 组合谓词

    有什么方法可以组合谓词吗 可以说我有这样的东西 class MatchBeginning public binary function
  • EF4.3.1 中的 MaxLength 属性

    The type System ComponentModel DataAnnotations MaxLengthAttribute exists in both path packages EntityFramework 4 3 1 lib
  • 如何解决路径中的非法字符异常?

    我使用 XML 解析显示来自 URL 的图像 有些图像显示得很好 但有时我会遇到如下异常 索引 113 处的路径中存在非法字符 http www theblacksheeponline com party img thumbspps 123
  • 无法在java中实现A Star

    我一整天都在尝试让这个算法启动并运行 但我一辈子都做不到 我在网上阅读了很多教程 以及 AS3 javascript 和 C 的源代码 但我无法将我所看到的内容适应我自己的代码 我创建了一个 AStar 类 它有一个名为 Node 的嵌套类
  • 如何将命令行参数传递给嵌套脚本?

    注意 这不是将 args 发送到顶级脚本 而是发送到由that script 在我的 package json 中 当我调用直接采用命令行参数的脚本时 它可以工作 但是 当我调用一个调用其他脚本的脚本时 它不会将命令行参数传递给它 我该如何
  • 实例方法的示例? (爪哇)

    我仍在学习 Java 中的方法 并且想知道如何使用实例方法 我在想这样的事情 public void example String random 但是 我不确定这实际上是实例方法还是其他类型的方法 有人可以帮我吗 如果它不是静态方法 那么它
  • 使用 Xcode 5 和 Matlab R2013b 在 OS X 10.9 中编译 mexopencv

    我有兴趣使用Kota Yamaguchi 的 mexopencv 库在我的系统上具有以下规格 OS X 10 9 小牛队 Xcode 5 MATLAB 2013b OpenCV 通过 macports 安装到 opt local inclu
  • 如何准确过滤 RGB 值以实现色度键效果

    我刚刚读过this教程并尝试了这个例子 所以我从网上下载了一个视频来自己测试 我所要做的就是在 if 条件下调整 RGB 值 这是示例中的示例代码 computeFrame function this ctx1 drawImage this
  • Android Facebook 示例应用程序在安装 FB 应用程序后无法登录

    起初我以为这是我的应用程序 但在使用任何 FB 示例应用程序时我遇到了完全相同的问题 以 HelloFacebookSample 为例 它为您提供一个登录按钮 登录后会显示您的照片并允许您发布状态更新 如果我的手机上没有安装 FB 应用程序
  • 将 URL 设置为 SEO 友好标题,使用破折号而不是 ID

    我正在使用 AngularJS 创建一个文章页面 其中包含各个文章详细信息的链接 这些链接基于 ID 以确保它们是唯一的 但我希望 URL 是带有破折号的标题 对 SEO 用户友好得多 而不是 ID 这是 Angular 示例 其中产品详细
  • 如何使用球衣发送 NTLM 验证的帖子请求?

    我正在使用 Java 对 Sharepoint 2013 进行 REST API 调用 如何使用 jersey Rest 客户端连接到 sharepoint 2013 注意 目前我正在使用 apache http 组件和NTCredenti
  • Python 错误代码

    我有一个 python 脚本 它使用 subprocess Popen 运行另一个 python 脚本的多个实例 每个实例都在不同的文件上运行 我收集了 300 个文件 我通过此过程运行这些文件以进行测试 每次运行时 都会有随机数量的文件失
  • Docker 远程 API 过滤器已退出

    我在 Docker Remote API 文档中看到过滤器可用于过滤状态 但我不确定如何形成请求 https docs docker com reference api docker remote api v1 16 list contai
  • 比较 Java 中的字符、整数和类似类型:使用 equals 还是 ==?

    我想确定一下 Java 中的一些事情 如果我有一个字符 一个整数或一个长整型以及诸如此类的东西 我应该使用 equals 还是 就足够了 我知道对于字符串 不能保证每个唯一字符串只有一个实例 但我不确定其他装箱类型 我的直觉是使用 equa
  • 在 Chrome/Mac 上强制 DOM 重绘/刷新

    每隔一段时间 Chrome 就会错误地渲染完全有效的 HTML CSS 或者根本不渲染 通过 DOM 检查器深入研究通常足以让它认识到其方式的错误并正确重绘 因此可以证明标记是好的 在我正在从事的项目中 这种情况经常发生 并且可以预见 因此
  • Android:以阿拉伯格式显示数字

    如何以阿拉伯格式显示数字 所以 如果我有整数 1 2 3他们成为 将区域设置设置为阿拉伯语 埃及 NumberFormat nf NumberFormat getInstance new Locale ar EG nf format i
  • 计算一行中有多少个 MySQL 字段被填充(或为空)

    我需要组合一种方法 使我能够量化用户已填充一行中的多少个字段 例如 User Name Age Country Gender Height 1 Mike 34 USA Male 6 2 Bill 23 CA 5 3 Jane 31 USA
  • .pdbrc 文件中的断点命令

    我想将断点命令保存在 pdbrc 就像是 b 81 commands 1 pp foo attr1 pp foo attr2 end b 108 commands 2 pp bar attr1 pp bar attr2 end 这将自动设置
  • 如何正确处理 nil UIApplication.sharedApplication().keyWindow

    当 的时候viewDidLoad称为视图应该被加载 但我总是崩溃UIApplication sharedApplication keyWindow为零 我应该把我的代码放在哪里 以便在加载视图后调用它 而不是每次用户回来时调用它 因此我已排