当目标为 ios 11.0 或字母时,在 Xcode 11.3 中访问 UIWindow 实例
Accessing UIWindow instance in Xcode 11.3 when target is ios 11.0 or letter
问题是我正在使用 Xcode 11,它具有新的 AppDelegate / SceneDelegate 设置。因此,UIWindow 为 nil,因此未设置新的 rootViewController。我知道在 iOS 13 中,在 SceneDelegate 中访问了 window,但该项目的目标是 iOS 11 或 letter.The SceneDelegate class 已由 @可用(iOS 13.0,*)。
如何从 appDelegate 访问 UIWindow?
我正在使用 Xcode 11.3 和 Swift 5.0.
这是我在项目中使用的扩展
extension UIWindow {
static var key: UIWindow? {
if #available(iOS 13, *) {
return UIApplication.shared.windows.first { [=10=].isKeyWindow }
} else {
return UIApplication.shared.keyWindow
}
}
}
这就是您使用此扩展程序的方式
if let getWindow = UIWindow.key {
// use getWindow to perform action on window
}
问题是我正在使用 Xcode 11,它具有新的 AppDelegate / SceneDelegate 设置。因此,UIWindow 为 nil,因此未设置新的 rootViewController。我知道在 iOS 13 中,在 SceneDelegate 中访问了 window,但该项目的目标是 iOS 11 或 letter.The SceneDelegate class 已由 @可用(iOS 13.0,*)。 如何从 appDelegate 访问 UIWindow? 我正在使用 Xcode 11.3 和 Swift 5.0.
这是我在项目中使用的扩展
extension UIWindow {
static var key: UIWindow? {
if #available(iOS 13, *) {
return UIApplication.shared.windows.first { [=10=].isKeyWindow }
} else {
return UIApplication.shared.keyWindow
}
}
}
这就是您使用此扩展程序的方式
if let getWindow = UIWindow.key {
// use getWindow to perform action on window
}