这是授权的正确“布局”吗?

时间:2012-07-11 18:12:12

标签: ios model-view-controller design-patterns delegation

我正在构建一个基于单个视图控制器的简单日历应用程序。视图控制器的层次结构如下:

  1. CDViewController
    • CalendarView
    • EventView
    • AgendaView
      • TPKeyboardAvoidingTableView
      • EventInfoCell
  2. 我的问题特别适用于我的AgendaView中的EventInfoCell。 Cell具有各种布局textFields和textViews的方法,具体取决于需要显示的信息。根据tableview的编辑状态和编辑/删除核心数据对象,启用/编辑这些文本字段和文本视图。当这些中的字符串发生更改时,单元格需要提醒managedObjectContext以保存或删除对象,更新projectView中填充其tableView的模型,并更新与日历的所有事件相关的模型。我当前的配置使viewController成为EventInfoCell的委托,但这会使agendaView模型的更新变得复杂。将EventInfoCell委托设置为AgendaView似乎适得其反,在信息发生变化时告诉它,然后让AgendaView将单词传递给它的委托(viewController),但如果它更符合MVC而不是绕过AgendaView ,我很乐意实施它。我想弄清楚什么是更好的设计模式,非常感谢任何输入。

1 个答案:

答案 0 :(得分:0)

“将EventInfoCell委托设置为AgendaView,在信息发生变化时告诉它,然后让AgendaView将单词传递给它的委托”似乎会适得其反“

为什么这会适得其反?这是我处理它的方式。如果您不这样做,那么您将不得不在AgendaView中为ViewController打开某种属性或通知或某些内容,以便将信息传回给它。这听起来比把信息传递给链条更适合我。另外,您最终可能会在EventInfoCell中进行某些需要delegate行动的更改,但不一定会更改Core Data模型。所以,我认为你应该把代表团带到链子上。