我有一个Swift项目,它是在Xcode 10.2中开发的,运行良好。我已经将我的代码从Xcode10.2迁移到Xcode11.3。此后,我的应用程序无法正常工作。每当我尝试添加窗口时,它的内容都不会显示,而且完全在屏幕后面。
我在控制台中得到了这个错误:
-[Window]不再支持手动将rootViewController的视图添加到视图层次结构中。请允许UIWindow将rootViewController的视图添加到视图层次结构本身
这是我的代码:
fileprivate(set) var topOverlayWindow = UIWindow()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.topOverlayWindow.windowLevel = UIWindow.Level(rawValue: CGFloat.greatestFiniteMagnitude)
self.topOverlayWindow.backgroundColor = NSUtility.editVideoThemeColor
self.topOverlayWindow.frame = CGRect(x: 0.0, y: 0.0, width: 56, height: 45)
self.topOverlayWindow.rootViewController = KAPPDELEGATE?.window?.rootViewController;
self.topOverlayWindow.alpha = 1.0
self.topOverlayWindow.isHidden = false
self.topOverlayWindow.makeKeyAndVisible()
}
我得到了解决方案。现在它在iOS 12和Xcode 11的iOS 13中也运行良好。
在上面的代码中,我只是替换了这个
self.topOverlayWindow.rootViewController = KAPPDELEGATE?.window?.rootViewController
带有下面提到的代码
self.topOverlayWindow.rootViewController = UIViewController()
//或者您可以将引用传递给任何新的控制器Rest一切正常。参考取自此处:
UIWindow未在iOS 13 中显示内容