Я новичок в 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)
}
}
Это неправильно, потому что я ссылаюсь на модель (order
) из вида (OrderViewController
)?