使用编程视图查看/控制器分离

时间:2011-04-23 01:26:13

标签: objective-c ios model-view-controller uiview nib

我正在创建一个基于UIView的类,用作tableHeaderView。它将有几个基于编辑模式的控件 - 一些将出现/消失,一些将在切换模式时改变外观。切换模式时,视图本身的高度会发生变化。看到布局会发生很大变化,我认为以编程方式制作整个内容比尝试将其放在笔尖中更好。

我正在努力解决的问题是视图/控制器的分离。 viewcontroller是否应该为每个控件(UITextField,UISegmentedControl,UIButton等)提供一个对象,还是应该只有一个基于UIView的类的实例?

实际创建控件并设置属性的代码应驻留在哪里?我的视图是否应该调用一个方法来设置整个视图(基于编辑模式),或者这应该在控制器中的视图中放置过多的功能?视图是否应仅设置控件的位置?或者甚至不应该有一个基于UIView的类 - 视图控制器将自己声明和配置所有控件?

这里适当的MVC分离是什么?

jorj

1 个答案:

答案 0 :(得分:0)

MVC的经验法则是您的控制器是中间人 - 如果您的模型存储有关编辑模式的信息,那么如果控制器完成工作,您的代码将更加清晰。如果在视图消失时丢弃编辑模式设置,则控制器无需了解它们。

还值得考虑是否会重复使用此代码 - 如果您要创建一个您将在其他地方再次使用的视图,这可能会更容易确定代码的“大脑”应该驻留在何处