SwiftUIでいこう! - ViewControllerを使う。
SwiftUIが出て3年ぐらいが経ってだいぶ使えるようになっていますが、まだUIKit を使わないといけない、使いたいことがあると思います。
UIKitをSwiftUIで使えるように用意されたプロトコルを使います。
この中で説明されていて大事なことはUIViewControllerRepresentableプロトコルに準拠させて以下の3項目に関しては必ず記述しないといけません、
全体です。
import SwiftUI
struct ContentView: View {
var body: some View {
ViewControllerWrapper()
}
}
struct ViewControllerWrapper : UIViewControllerRepresentable {
typealias UIViewControllerType = UIViewController
func makeUIViewController(context: Context) -> UIViewController {
return ViewController()
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
}
}
ViewControllerは普通にUIKitで使える形で別ファイルでも、同じファイルに書いても大丈夫です。以下のもはviewのバックグラウンドが赤くなります。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.red
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
UIKit で作られたものでもこの仕組みを使えば簡単にSwiftUIに変換して表示することができます。
この記事が気に入ったらサポートをしてみませんか?