1

我正在使用 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()
}
4

1 回答 1

0

为每个单元格创建一个视图模型真的要好得多。当您进行装订时,意大利面部分就出现了。

于 2018-07-09T08:32:55.290 回答