我正在使用 MVVM 非反应式在 Swift 4 中构建应用程序。我想从 tableView 的 View 模型中调用 viewmodel 更新,以免将其变成 spagetthi 代码。我没有为每个 collectionViewCell 创建一个视图模型,而是尝试从主 ViewModel 进行更新。
//Spaghetti option (VM - ViewModel , VC - ViewController)
//TableVC - TableVM
//Cell- CellVM
//CollectionCell- CollectionVM
以及模型和管理器的更新。我正在使用下面的方法委托给 Main TableViewController,让 MainViewModel 承担所有责任。由于我在不同的单元格中有多个 CollectionView,我认为这是最好的方法。有什么建议么?
func setCollectionViewDataSourceDelegate<D: UICollectionViewDataSource & UICollectionViewDelegate>(dataSourceDelegate: D, forRow row:Int){
self.collectionView.delegate = dataSourceDelegate
self.collectionView.dataSource = dataSourceDelegate
self.collectionView.tag = row
self.collectionView.reloadData()
}