我正在使用 MVVM 和 Coordinator 来设计应用程序。我怀疑的一件事是如何在不同的ViewModels
. 通常,前一个 viewModel 只会创建下一个 viewModel,并且只会在prepareforsegue
. 但是,既然我负责所有导航,我该如何实现呢?
Class AppCoordinator : NSObject, Coordinator, UINavigationControllerDelegate {
var childCoordinators = [Coordinator]()
var navigationController: UINavigationController
var dependencyContainer : MainDependencyContainer
func start() {
let vc = ViewController.instantiate()
vc.coordinator = self
vc.viewModel = dependencyContainer.makeMainViewModel()
navigationController.delegate = self
navigationController.pushViewController(vc, animated: true)
}
func createAccount() {
let vc = CreateAccountViewController.instantiate()
vc.coordinator = self
navigationController.pushViewController(vc, animated: true)
}
}
我当然可以创建ViewModel
for CreateAccountViewController
inMainViewModel
并将 theViewModel
作为参数传递给createAccount
方法,但在这里这样做是正确的方法吗?这里的单元测试含义是什么?