我正在添加新的UIWindow以在应用程序进入前台时显示密码视图控制器。
在AppDelegate的iOS 13之前,我拥有属性var passcodeWindow = UIWindow(frame: UIScreen.main.bounds)
,其中我的rootViewController
是密码视图控制器,并且在applicationWillEnterForeground
方法中,我正在做passcodeWindow.makeKeyAndVisible()
将其放置在顶部
现在,当我想在iOS 13中实现密码功能时,这种方法就会出现问题。我将其移至SceneDelegate中的sceneWillEnterForeground
方法,但似乎无法在此场景中实际窗口的顶部显示passcodeWindow
。
我执行的操作与AppDelegate中的操作完全相同,并且未显示passcodeWindow
。
我在sceneWillEnterForeground
中的AppDelegate和SceneDelegate中的操作方式:
passcodeWindow.rootViewController = passcodeViewController(type: .unlock)
passcodeWindow.makeKeyAndVisible()
我希望passcodeWindow
显示在场景中当前窗口的顶部。
答案 0 :(得分:2)
您可以尝试以下方法:
if #available(iOS 13.0, *) {
if let currentWindowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
passcodeWindow.windowScene = currentWindowScene
}
}