2012-07-11 63 views
0

我正在构建基于单个视图控制器的简单日历应用程序。视图控制器具有层次结构,如下:这是代表团的正确“布局”吗?

  1. CDViewController
    • CalendarView
    • 使用EventView
    • AgendaView
      • TPKeyboardAvoidingTableView
      • EventInfoCell

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

回答

0

“这似乎是适得其反设置EventInfoCell代表是AgendaView,告诉它的信息发生变化时,再有AgendaView字通到它的委托”

为什么这个问题似乎适得其反?这是我处理它的方式。如果你不这样做,那么你将不得不打开某种属性或通知或AgendaView中的某些东西ViewController将信息传回给它。这听起来比起把信息传递给我更加适得其反。此外,您最终可能在EventInfoCell中进行某种更改,要求它的delegate发挥作用,但不一定会更改Core Data模型。所以,我认为你应该把代表团通过链条。