【发布时间】:2019-07-09 17:34:50
【问题描述】:
我是 MVVM 的新手,所以在实现一个简单的应用程序时遇到了一些问题。假设我有一个屏幕OrderViewController:
class OrderViewController: UIViewController {
var viewModel = OrderViewModel()
}
class OrderViewModel {
var order = Order()
}
我还有一个屏幕ProductsViewController,可以从OrderViewController打开:
class ProductsViewController: UIViewController {
var viewModel = ProductsViewModel()
}
class ProductsViewModel {
var order: Order?
}
ProductsViewModel 内部的一些逻辑依赖于order 模型,所以我必须将order 从OrderViewModel 传递给ProductsViewModel。如何在不破坏 MVVM 的情况下做到这一点?如果我这样做:
class OrderViewController: UIViewController {
var viewModel = OrderViewModel()
func showProductsViewController() {
let vc = ProductsViewController()
vc.viewModel.order = self.viewModel.order
self.navigationController?.pushViewController(vc)
}
}
这是错误的,因为我从视图 (OrderViewController) 中引用了模型 (order)?
【问题讨论】: