UIKit(Storyboard)からSwiftUIのViewを表示する方法

今回は Storyboard の UIViewController から SwiftUI の View を表示する手順について紹介します。

UIKit(Storyboard)からSwiftUIのViewを表示する方法

手順は非常に簡単です。SwiftUIに用意されている UIHostingController を使います。

UIHostingController(rootView: _)

rootView: _ には SwiftUI の View を指定します。戻り値に UIViewController を受け取ることができます。

冒頭サンプルの全体コードは以下の通りです。Storyboardには予めボタンを用意しておきます。

import SwiftUI

struct SwiftUIView: View {
    var body: some View {
        Text("Hello, World!")
    }
}
import UIKit
import SwiftUI

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func buttonTapped(_ sender: Any) {
        let view = UIHostingController(rootView: SwiftUIView())
        self.present(view, animated: true, completion: nil)
    }
}

UKitで現在進行中のプロジェクトでも、途中からSwiftUIに移行することができますね。

以上