0

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

  1. CDViewController
    • 日历视图
    • 事件视图
    • 议程视图
      • TPKeyboardAvoidingTableView
      • 事件信息单元

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

4

1 回答 1

0

“将 EventInfoCell 委托设置为 AgendaView,在信息更改时告诉它,然后让 AgendaView 将这个词传递给它的委托似乎几乎适得其反”

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

于 2012-07-11T19:22:44.713 回答