问题是我正在使用Xcode 11
,它具有新的AppDelegate / SceneDelegate
设置。因此,UIWindow
为零,因此未设置新的rootViewController
。我知道在iOS 13
中可以在SceneDelegate
中访问该窗口,但是该项目的目标是iOS 11
或字母。SceneDelegate
类已经由@available(iOS 13.0,*)进行了处理。如何从UIWindow
访问appDelegate
?我正在使用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
}