【发布时间】:2020-02-26 07:45:53
【问题描述】:
我有一个订阅 ObservableObject 的 UIViewControllerRepresentable 结构,如下所示:
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()
}
}
我希望,当 ObservedObject 发生变化时,要么调用 updateUIViewController,要么调用另一个函数来更新视图控制器的 metrics 数组并调用它的 setChartValues() 方法。
有什么办法可以做到吗?我找不到一个
我总是可以像过去只使用 UIKit 一样做到这一点,但使用 MVVM 模式会更好
非常感谢您的帮助,谢谢!
【问题讨论】:
标签: ios swift observable swiftui combine