如何将SwiftUI表单添加到UIView控制器

如何将SwiftUI表单添加到UIView控制器,swift,swiftui,Swift,Swiftui,我有一个UIViewController,它通过我的viewDidLoad中的函数显示: let imageView: UIImageView = { let iv = UIImageView() iv.contentMode = .scaleAspectFit return iv }() func configureViewComponents() { view.addSubview(imageView) 可以这样称呼它: override

我有一个UIViewController,它通过我的
viewDidLoad
中的函数显示:

let imageView: UIImageView = {
    let iv = UIImageView()
    iv.contentMode = .scaleAspectFit
    return iv
    }()

func configureViewComponents() {
    
    view.addSubview(imageView)
可以这样称呼它:

override func viewDidLoad() {
    super.viewDidLoad()
    configureViewComponents()
}
我有一个单独的文件表格。swift:

import Combine
import SwiftUI

struct myForm: View {

@ObservedObject var submission = Submission()

@State var confirmationMessage = ""
@State var showingConfirmation = false


var body: some View {
    NavigationView {
        Form {
            Toggle(isOn: $submission.fieldOne ) {
                Text("Field One")
            }
我正在尝试将其添加到UIViewController,方法与使用
视图添加imageView.addSubview(myForm)
添加imageView相同,但我收到消息
无法将form类型的值转换为预期的参数类型UIView。


如何在此UIViewController中显示我的表单?

您需要使用
UIHostingController
,如下所示

func configureViewComponents() {

    view.addSubview(imageView)

    let formController = UIHostingController(rootView: myForm())
    if let form = formController.view {
        form.translatesAutoresizingMaskIntoConstraints = false

        view.addSubview(form)
        form.topAnchor.constraint(equalTo: imageView.bottomAnchor, constant: 0).isActive = true
        form.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
        form.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
        form.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true

        self.addChild(formController)
    }
}

作为问题的副本结束问题怎么样?