Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 视图/控制器与编程视图的分离_Objective C_Ios_Model View Controller_Uiview_Nib - Fatal编程技术网

Objective c 视图/控制器与编程视图的分离

Objective c 视图/控制器与编程视图的分离,objective-c,ios,model-view-controller,uiview,nib,Objective C,Ios,Model View Controller,Uiview,Nib,我正在制作一个基于UIView的类,用作tableHeaderView。它将有几个基于编辑模式的控件-一些将出现/消失,一些将在切换模式时更改外观。切换模式时,视图本身的高度将发生变化。看到布局会有很大的变化,我决定只通过编程来完成整个过程,而不是尝试在nib中进行布局 我正在努力解决的是视图/控制器分离应该在哪里。viewcontroller应该为每个控件UIExtField、UISegmentedControl、UIButton等都有一个对象,还是应该只有一个基于UIView的类的实例 实际

我正在制作一个基于UIView的类,用作tableHeaderView。它将有几个基于编辑模式的控件-一些将出现/消失,一些将在切换模式时更改外观。切换模式时,视图本身的高度将发生变化。看到布局会有很大的变化,我决定只通过编程来完成整个过程,而不是尝试在nib中进行布局

我正在努力解决的是视图/控制器分离应该在哪里。viewcontroller应该为每个控件UIExtField、UISegmentedControl、UIButton等都有一个对象,还是应该只有一个基于UIView的类的实例

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

什么是正确的MVC分离


jorj

MVC的经验法则是,您的控制器是中间人–如果您的模型存储了有关编辑模式的信息,那么如果控制器完成了工作,您的代码将更干净。如果视图消失时放弃编辑模式设置,则控制器不需要知道这些设置

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