作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 Objective-C 的 UIViewController 的 viewDidLoad 方法中,我这样做是为了在我的 iOS 应用程序中获取 keyWindow 引用:
UIWindow * keyWindow = [[UIApplication sharedApplication] keyWindow];
因此,我将此 View Controller 移植到 Swift 中,并在 viewDidLoad 调用中执行此操作:
let window = UIApplication.sharedApplication().keyWindow
我想了解为什么窗口为零。当我在该行之后放置一个断点时,我会检查控制台中的窗口并得到以下信息:
(lldb) po window
nil
如何在 swift 中让窗口成为对我的应用程序的 keyWindow 的有效引用?
最佳答案
我在搜索快速获取窗口时遇到了这个问题。如果你想获得窗口而不是 keyWindow,试试这个(Swift 2):
if let app = UIApplication.sharedApplication().delegate as? AppDelegate, let window = app.window {
MBProgressHUD.show(text, view:window)
}
为 Swift 3 更新:(感谢@Trevor)
if let app = UIApplication.shared.delegate as? AppDelegate, let window = app.window {
MBProgressHUD.show(text, view:window)
}
关于ios - 如何在 swift 应用程序中获取 keyWindow 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215462/
我是一名优秀的程序员,十分优秀!