Swift UIKitを使用してWindowとViewControllerを取得する
UIKitを使用している環境で、別Windowの取得や、取得したWindowからViewControllerを取得したかったので、方法がわかったのでメモ・・・_φ(・_・
Windowを取得する方法
Windowを取得するためのコード
let scene: UIScene? = UIApplication.shared.connectedScenes.first
let windowScene: UIWindowScene? = scene as? UIWindowScene
let windows: [UIWindow]? = windowScene?.windows
上記コードで現在のWindow一覧を取得できます。
動作を確認したのはiOS 15で行いました。
let windowsで現在のWindowを取得し、そこからWindow内に存在するViewControllerを取得・・・
ということができます。
ViewControllerを取得する方法
let viewController:UIViewController? = windows?[0].rootViewController
上記コードで、先程の「Windowを取得する方法」で取得したWindowからViewControllerを取得することができます。
正しい手段かはわかりませんが・・・
コメント