用于自定义视图的iOS控制器

时间:2015-05-02 08:32:23

标签: ios uiviewcontroller separation-of-concerns

我试图创建轻量级视图控制器(可测试性,关注点分离等),然而,当涉及到某些问题时,我一直无法找到合理的解决方案或模式。例。

一个非常常见的情况(有很多例子)将视图控制器与tableview的委托&数据源;我明白这一点,完全有道理。但是,视图控制器可能包含多个不同复杂度的自定义视图的情况呢?什么应该负责控制每个观点?当然不仅仅是父视图控制器。

我倾向于想到一个' UIViewController'更多的屏幕控制器与UI框架及其事件密切相关;它没有一个控制一个特定视图的责任。为了进一步说明我的观点,想象一下带有几个不同原型单元的tableview - 其中一些相当复杂,可能需要网络访问 - 如何管理它?当然,没有任何一个视图控制器,数据源或委托应该充当"控制器"对于所有这些细胞?而且很多逻辑/责任不属于单元格视图本身,因此需要在某处委派。

我想到的一个选择就是创建控制器对象(NSObject的子类),它们充当"查看控制器"对于我创建的自定义视图,例如复杂tableview单元的控制器对象 - 它的唯一职责是管理该特定视图。然后tableview单元委托给控制器对象,然后(如果需要)委托给父UIViewController。虽然这会起作用并有助于分离问题,但是所有的授权层都会开始变得有些尴尬。

有没有人对处理这些场景有任何好的建议,或者知道有哪些好的代码示例可以证明这一点?

谢谢!

0 个答案:

没有答案