iOS 中的主从和 MVVM

Master-detail and MVVM in iOS

我有一个 viewController(master)管理一个 tableView 并为 tableView 的数据和业务逻辑保存一个 viewModel。当用户点击一个单元格时,它会导航到另一个 viewController(详细信息),其中显示了所选项目的特定信息。

主 viewController 使用所选信息创建细节的 viewModel,并将其传递给细节 viewController。然后一旦显示详细信息viewController,用户就可以编辑该项目的信息。我正在使用 CoreData 来保存这些用户的更改。因此,当用户编辑项目时,该项目会根据 CoreData 和详细信息 viewController 的 viewModel 进行更新,但随后用户可以再次导航回主 viewController。项目中所做的更改应反映在主 viewController.

中相应的单元格中

我的问题是:根据 MVVM 设计模式(viewControllers 持有 viewModels 而不是直接模型),在编辑了详情 viewController?

A)谁应该通知谁模型的变化?:细节VC应该通知主控VC,然后主控VC更新它的VM吗?

B) detail VM 是否应该通知 master VC?

C) 从属虚拟机是否应该通知主虚拟机?

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

简答:

C) 从属虚拟机是否应该通知主虚拟机?

是的!

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

是的!

您应该将 Master 的 VM 作为委托传递给 Detail 的 VM。这样 Detail 就可以更新 master 的 VM 有关更改的信息。我想你没有使用绑定。