👽
【Swift UI】Swift UIでViewControllerを呼び出す。
Swift UIでViewControllerを呼び出す方法
今回は自分への書き留めようなので、分かりにくいかもです。
UIViewControllerRepresentable
まず、下記コードを見てください。
struct(構造体)型にUIViewControllerRepresentableを準拠させています。
struct makeViewController: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
// 指定のUIViewControllerを作成する
let myViewController: UIViewController = CreateUserViewController()
return myViewController
}
// UIViewControllerを更新するメソッド
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
// UIViewControllerを更新したときの処理
}
}
makeUIViewController
UIViewControllerRepresentableを準拠させると「makeUIViewController」を記述する必要が出ます。
makeUIViewControllerは、ビューコントローラーオブジェクトを作成し、UIKitビューコントローラーの初期状態を返します。
UIViewControllerRepresentableを準拠させたstructを呼び出した際にmakeUIViewControllerは一度だけ呼び出されます。
updateUIViewController
パラメータにビューコントローラーを受け取っており、SwiftUIはビューコントローラーに影響を与える変更が起きたときに「updateUIViewController」を呼び出し、もう一つのパラメータであるcontextの情報と一致するようにビューコントローラーを変更する。
## 呼び出し方
呼び出し方の一例ですが、書いておきます。
var body: some Scene {
makeViewController()
}
Discussion