iOS中的主细节和MVVM

时间:2018-02-13 03:58:01

标签: ios mvvm uiviewcontroller viewmodel master-detail

我有一个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)我应该如何通知,实施协议?

1 个答案:

答案 0 :(得分:0)

简答:

C)详细VM是否应通知主VM?

YES!

D)我应该如何通知,实施协议?

YES!

您应该将Master的VM作为委托传递给Detail的VM。因此,Detail可以更新master的VM以了解更改。我想你没有使用绑定。