将委托放在MVVM中的正确位置是什么?

时间:2017-07-13 07:32:45

标签: objective-c

如果我们说View和View Controller可以被视为MVVM中的View,那么我们应该在ModelView中使用Delegates(用于业务逻辑)。

2 个答案:

答案 0 :(得分:1)

您的问题很不清楚,但我仍然可以为您提供大纲/指南。

通常,随着您的应用程序变得更加复杂,您需要为每个视图创建可由数据自定义和描述的视图模型。您希望视图控制器清晰且易读,因此,您只应将视图控制器用作自定义视图的容器。您的自定义视图可以具有didSet的视图模型属性,允许它修改和配置视图。例如,当我从tableView中取出单元格时,我会给(cell as? MyCustomCellClass)?.viewModel = aViewModel赋予它极其可读性。您可以通过适当地设置委托以在子视图和视图之间进行通信,或者从tableViewCell到管理和扩展UITableViewDelegateUITableViewDataSource的任何控制器来使用委托来处理业务逻辑。总而言之,您的MVVM架构将依赖于可用于配置自定义视图的自定义View模型,同时您拥有管理业务逻辑的控制器对象,并处理较低级别的事物之间的数据流与更高级别的事物。如果您有特定的示例,请提供帮助,请发布一些代码。希望这有帮助!

答案 1 :(得分:1)

通常,如果它是视图的委托 - 请将其放在查看模型中。如果它的模型级代表与UI无关,请在模型中实现。