UITableViewCell更新模型的正确MVC方法?

时间:2018-02-14 03:14:43

标签: ios swift model-view-controller

我对MVC很新,我对模型和视图有疑问。我有一些内容视图,允许用户通过点击来收藏该内容。这在视图中发生,我需要使用新信息更新数据模型。在我看来,简单的方法是在每个单元格上都有Note属性,然后当在控制器中点击该单元格时,我可以在{{1}上调用addFavoriteNoteremoveFavoriteNote使用与该单元格关联的注释。但是,DataSource是模型中的一个类,因此我理解在Note中拥有Note属性是不正确的。这是错误的MVC,如果是这样,什么是面向MVC的方法?

UITableViewCell

1 个答案:

答案 0 :(得分:1)

你是不正确的,你不应该让细胞更新模型。您的单元格应通知视图控制器检查/取消选中事件。这将使用委托模式或使用闭包来实现。视图控制器将是委托或提供在单元格中发生事件时调用的闭包。作为控制器,视图控制器可以根据需要更新模型来处理此事件。

控制器为视图(在这种情况下为单元格)提供足够的数据来显示自身。

控制器处理来自视图(例如单元格)的事件,导致模型被更新。

控制器处理模型事件并根据更新的数据告知视图更新。