当目标为ios 11.0或字母时访问Xcode 11.3中的UIWindow实例

当目标为ios 11.0或字母时访问Xcode 11.3中的UIWindow实例,ios,swift,appdelegate,uiscenedelegate,Ios,Swift,Appdelegate,Uiscenedelegate,问题是我使用的Xcode 11具有新的AppDelegate/SceneDelegate设置。因此,UIWindow为nil,因此未设置新的rootViewController。我知道在iOS 13中,窗口是在SceneDelegate中访问的,但是这个项目的目标是iOS 11或letter。SceneDelegate类是由@available(iOS 13.0,*)进行的。 如何从appDelegate访问UIWindow? 我正在使用Xcode 11.3和Swift 5.0。这是我在项目中使

问题是我使用的Xcode 11具有新的AppDelegate/SceneDelegate设置。因此,UIWindow为nil,因此未设置新的rootViewController。我知道在iOS 13中,窗口是在SceneDelegate中访问的,但是这个项目的目标是iOS 11或letter。SceneDelegate类是由@available(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 { $0.isKeyWindow }
        } else {
            return UIApplication.shared.keyWindow
        }
    }
}
这就是您使用此扩展的方式

if let getWindow = UIWindow.key {
    // use getWindow to perform action on window
}

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

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
}

您可以将项目还原为appdelegate您可以将项目还原为appdelegate