我有一个viewController(master),它管理tableView
并为tableView的数据和业务逻辑保存一个viewModel。当用户点击单元格时,它会导航到另一个viewController(详细信息),其中显示所选项目的特定信息。
主viewController使用所选信息创建详细信息的viewModel,并将其传递给详细视图控制器。然后,一旦显示详细viewController,用户就可以编辑这样的项目的信息。我正在使用CoreData
来保留这些用户的更改。因此,当用户编辑项目时,该项目会更新CoreData
和详细viewController的viewModel,但用户可以再次导航回主viewController。项目中所做的更改应反映在主viewController中的相应单元格中。
我的问题是:根据MVVM设计模式(viewControllers直接持有viewModels而不是模型),在详细的viewController中编辑了一个项后,我应该如何更新主viewController及其viewModel?
A)谁应该通知模型中的更改者?:详细VC是否应该通知主VC,然后主VC更新其VM?
B)详细VM是否应通知主VC?
C)详细信息VM是否应通知主VM?
D)我应该如何通知,实施协议?
答案 0 :(得分:0)
简答:
C)详细VM是否应通知主VM?
YES!
D)我应该如何通知,实施协议?
YES!
您应该将Master的VM作为委托传递给Detail的VM。因此,Detail可以更新master的VM以了解更改。我想你没有使用绑定。