我正在写一个相当复杂的iPad应用 – 我的第一个更大的应用.
这个应用程序有一些自定义UIViews,提供相当复杂的数据,包括一个表.这些视图不占用整个屏幕,并且可以(并且可能会)在屏幕上随时存在许多视图(尽管只有一个将处于显示该表的“扩展”状态).
这是一个应该传达基本原则的基本例子:
请注意,这些东西不应该在popovers中;相反,FamilyViews展开以显示其详细数据. (还请注意,这个模型只是为了这个问题而创建的,与我的界面看起来没什么关系;我知道这不是好的屏幕设计)
我还没有决定将谁作为这些自定义视图的委托和数据源:
>为当前屏幕委托和数据源制作ViewController是不优雅的,因为它不仅仅是VC的主视图中的一个表.
>使视图本身成为委托和数据源对我来说似乎有点奇怪,因为感觉就像让视图过于活跃一样;把它变成一个半控制器.
>使基础模型对象的数据源看起来过于紧密,并且还会破坏MVC.它没有回答谁应该是代表的问题.
我倾向于为他们自己的表制作这些“FamilyViews”委托和数据源中的每一个.对这些表的操作必须耦合到FamilyView的委托(ViewController),但这应该不是问题,是吗?
有人对此有一些意见吗?