我正在升级我的应用程序,以使用iOS 13中定义的新UIScene
模式,但应用程序的关键部分已停止工作.
以下是我使用的代码,但现在不起作用:
let window = UIWindow(frame: UIScreen.main.bounds)
let viewController = UIViewController()
viewController.view.backgroundColor = .clear
window.rootViewController = viewController
window.windowLevel = UIWindow.Level.statusBar + 1
window.makeKeyAndVisible()
viewController.present(self, animated: true, completion: nil)
我try 过很多东西,包括用WindowScenes
来展示新的UIWindow
,但找不到任何实际的文档或示例.
我的一次try (没有成功——窗口出现时的相同行为,并立即被解雇)
let windowScene = UIApplication.shared.connectedScenes.first
if let windowScene = windowScene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
let viewController = UIViewController()
viewController.view.backgroundColor = .clear
window.rootViewController = viewController
window.windowLevel = UIWindow.Level.statusBar + 1
window.makeKeyAndVisible()
viewController.present(self, animated: true, completion: nil)
}
在iOS 13测试版中有人能做到这一点吗?
谢谢
EDIT
从提出这个问题到发布iOS 13的最终版本已经过go 了一段时间.下面有很多答案,但几乎所有答案都包括一件事——Adding a strong/stronger reference to the UIWindow.您可能需要包含一些与新场景相关的代码,但请先try 添加强引用.