当目标是 ios 11.0 或字母时在 Xcode 11.3 中访问 UIWindow 实例
Posted
技术标签:
【中文标题】当目标是 ios 11.0 或字母时在 Xcode 11.3 中访问 UIWindow 实例【英文标题】:Accessing UIWindow instance in Xcode 11.3 when target is ios 11.0 or letter 【发布时间】:2020-02-12 05:03:47 【问题描述】:问题是我使用的是 Xcode 11,它具有新的 AppDelegate/SceneDelegate 设置。因此,UIWindow 为 nil,因此未设置新的 rootViewController。我知道在 ios 13 中,该窗口是在 SceneDelegate 中访问的,但该项目的目标是 iOS 11 或字母。SceneDelegate 类已由@available(iOS 13.0,*)进行。 如何从 appDelegate 访问 UIWindow? 我正在使用 Xcode 11.3 和 Swift 5.0。
【问题讨论】:
您可以将您的项目还原为 appdelegate 【参考方案1】:这是我在项目中使用的扩展
extension UIWindow
static var key: UIWindow?
if #available(iOS 13, *)
return UIApplication.shared.windows.first $0.isKeyWindow
else
return UIApplication.shared.keyWindow
这就是您使用此扩展程序的方式
if let getWindow = UIWindow.key
// use getWindow to perform action on window
【讨论】:
以上是关于当目标是 ios 11.0 或字母时在 Xcode 11.3 中访问 UIWindow 实例的主要内容,如果未能解决你的问题,请参考以下文章
更新 xcode 9 和 iOS 11.0 后有人遇到 UI 问题吗?
TapGesture 在 Xcode 11.0 Beta 中不起作用
ios8/xcode6.1:在情节提要中设置时在运行时忽略自定义字体
Xcode 9 + iOS 11.0 - Debug assertion with Metal renderer
在“开始开发 iOS 应用程序 (Swift)”教程中,从 Xcode 11.0 开始,Hello World 屏幕出现在画布顶部,将其隐藏