小编Nol*_*der的帖子

在 UIViewControllerRepresentable 中,如何将 ObservedObject 的值传递给视图控制器并在每次值更改时更新它?

我有一个UIViewControllerRepresentable订阅 ObservableObject 的结构,如下所示:

struct ViewControllerWrapper: UIViewControllerRepresentable {
@ObservedObject var chartVM = ChartViewModel()

typealias UIViewControllerType = ViewController


func makeUIViewController(context: Context) -> ViewController {
    let lineChartView = LineChartView()
    let vc = ViewController(lineChartView: lineChartView)
    return vc
}

func updateUIViewController(_ uiViewController: ViewController, context: Context) {
    uiViewController.metrics = chartVM.metrics
    uiViewController.setChartValues()
}
}
Run Code Online (Sandbox Code Playgroud)

我希望,当 ObservedObject 改变时,要么updateUIViewController被调用,要么是另一个更新视图控制器metrics数组并调用它的setChartValues()方法的函数。

有没有办法做到这一点?我找不到一个

我总是可以像过去只使用 UIKit 那样做,但使用 MVVM 模式会更好

帮助将不胜感激,谢谢!

observable ios swift swiftui combine

4
推荐指数
1
解决办法
1669
查看次数

标签 统计

combine ×1

ios ×1

observable ×1

swift ×1

swiftui ×1