【发布时间】:2011-09-21 22:52:37
【问题描述】:
我正在编写一个相当复杂的 iPad 应用程序 - 我的第一个更大的应用程序。
这个应用程序有一些自定义 UIViews 可以呈现相当复杂的数据,包括一个表格。这些视图不会占据整个屏幕,并且在任何时候都可能(并且很可能会)在屏幕上显示许多视图(尽管只有一个处于显示表格的“展开”状态)。
这是一个应该传达基本原则的基本示例:
请注意,这些东西不应该出现在弹出窗口中;相反,FamilyViews 会展开以显示其详细数据。 (还请注意,这个模型只是为了这个问题而创建的,与我的界面外观无关;我知道这不是好的屏幕设计)
我尚未决定将谁作为这些自定义视图的委托和数据源:
- 为当前屏幕代理和数据源制作 ViewController 并不优雅,因为它不仅仅是 VC 主视图的一部分。
- 让 View 本身成为委托和数据源对我来说似乎有点奇怪,因为这感觉就像给视图赋予了过于活跃的角色;把它变成一个半控制器。
- 使底层模型对象数据源看起来耦合得太紧,而且还破坏了 MVC。而且它没有回答谁应该是代表的问题。
我倾向于将这些“FamilyViews”中的每一个都作为它们自己的表的委托和数据源。这些表上的操作必须与 FamilyView 的委托(ViewController)耦合,但这应该不是问题,不是吗?
有人对此有意见吗?
【问题讨论】:
标签: objective-c cocoa-touch ipad uitableview uiview