我有一个用Xcode 10.2开发的Swift项目,它运行良好。我已将代码从Xcode 10.2 迁移到Xcode 11.3 。由于此后我的应用程序无法正常工作。每当我尝试添加窗口时,它的内容都不会显示,并且完全是后退屏幕。
我在控制台中收到此错误:
-[窗口]不再支持将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()
}
答案 0 :(得分:0)
我找到了解决方案。现在,它在Xcode 11的 iOS 12,iOS 13 中也能正常工作。
在上面的代码中,我只是替换了
self.topOverlayWindow.rootViewController = KAPPDELEGATE?.window?.rootViewController
带有下面提到的代码
self.topOverlayWindow.rootViewController = UIViewController()
//或者您可以将引用传递给任何新控制器,其余一切都很好。裁判从这里拿走了: