Swift UIKitでWindowとViewを取得する方法

Swift Swift
Swift

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を取得することができます。

正しい手段かはわかりませんが・・・

UIWindowSceneとは

コメント

タイトルとURLをコピーしました