【问题标题】:View/Controller separation with a programmatic view使用程序化视图分离视图/控制器
【发布时间】:2011-08-11 07:34:33
【问题描述】:

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

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

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

这里正确的 MVC 分离是什么?

jorj

【问题讨论】:

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


    【解决方案1】:

    MVC 的经验法则是您的控制器是中间人——如果您的模型存储有关编辑模式的信息,那么如果控制器完成工作,您的代码将会更简洁。如果视图消失时编辑模式设置被丢弃,那么控制器不需要知道它们。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-12
      • 2012-10-23
      • 1970-01-01
      • 2015-07-21
      • 2018-12-27
      • 2018-02-21
      • 2015-01-25
      • 2017-07-05
      相关资源
      最近更新 更多