0

问题是我正在使用具有新 AppDelegate / SceneDelegate 设置的 Xcode 11。正因为如此,UIWindow 为 nil,所以没有设置新的 rootViewController。我知道在 iOS 13 中,该窗口是在 SceneDelegate 中访问的,但这个项目的目标是 iOS 11 或字母。SceneDelegate 类已由 @available(iOS 13.0, *) 进行。如何从 appDelegate 访问 UIWindow?我正在使用 Xcode 11.3 和 Swift 5.0。

4

1 回答 1

2

这是我在项目中使用的扩展

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
}
于 2020-02-12T05:13:08.683 回答