我对MVC很新,我对模型和视图有疑问。我有一些内容视图,允许用户通过点击来收藏该内容。这在视图中发生,我需要使用新信息更新数据模型。在我看来,简单的方法是在每个单元格上都有Note
属性,然后当在控制器中点击该单元格时,我可以在{{1}上调用addFavoriteNote
或removeFavoriteNote
使用与该单元格关联的注释。但是,DataSource
是模型中的一个类,因此我理解在Note
中拥有Note
属性是不正确的。这是错误的MVC,如果是这样,什么是面向MVC的方法?
UITableViewCell
答案 0 :(得分:1)
你是不正确的,你不应该让细胞更新模型。您的单元格应通知视图控制器检查/取消选中事件。这将使用委托模式或使用闭包来实现。视图控制器将是委托或提供在单元格中发生事件时调用的闭包。作为控制器,视图控制器可以根据需要更新模型来处理此事件。
控制器为视图(在这种情况下为单元格)提供足够的数据来显示自身。
控制器处理来自视图(例如单元格)的事件,导致模型被更新。
控制器处理模型事件并根据更新的数据告知视图更新。