Is it possible to access window variable from SceneDelegate in a ViewController? Basically I need an alternative for this UIApplication.shared.delegate.window but can't find anything
Is it possible to access window variable from SceneDelegate in a ViewController? Basically I need an alternative for this UIApplication.shared.delegate.window but can't find anything
From iOS 13, apps can have multiple active windows, so you need to access the window you want. So you can access a window of any View like this:
self.view.window
if you really want to access the UISceneDelegate you can access it like:
self.view.window.windowScene.delegate
Assuming
You can implement a helper variable in SceneDelegate like this:
private(set) static var shared: SceneDelegate?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
Self.shared = self
}
then you can access it anywhere like this:
SceneDelegate.shared?.window // or anything else