首页 > 解决方案 > 将数据从 UIKit 传递到 SwiftUI(容器 UIHostingController)

问题描述

如何在UIViewController和之间传递数据struct ContentView

我试过了,ObservableObject但我无法获得最新的数据。

标签: swiftswiftui

解决方案


要将数据从 a 传递UIViewController到 an 内的 SwiftUI-Struct ,UIHostingController您可以将 an 附加environmentObject到 SwiftUI rootView

let vc = UIHostingController(rootView: YourContentView().environmentObject(yourEnvironmentObject))

当然,您需要创建一个 ObservableObject 并将其添加到您的 SwiftUI-Struct 中。

创建 ObservableObject:

class TypeOfEnvironmentObject: ObservableObject {
    @Published var data = "myData"
}

将其添加到您的结构中:

@EnvironmentObject var yourEnvironmentObject: TypeOfEnvironmentObject

推荐阅读