Ios 我应该在单独的UIView类中还是在UIViewController内部创建视图(由UIButton、UILabel等组成)?

Ios 我应该在单独的UIView类中还是在UIViewController内部创建视图(由UIButton、UILabel等组成)?,ios,cocoa-touch,separation-of-concerns,architectural-patterns,Ios,Cocoa Touch,Separation Of Concerns,Architectural Patterns,我有一个UIViewController比如viewControllerA,它包含一些视图元素,比如UIButton,UILabel等等。现在我的问题是,我应该在一个单独的UIView类中创建这些视图元素,然后添加UIViewController,或者我应该直接在UIViewController中创建这些视图元素。根据MVC,在一个单独的UIView类中创建视图元素,然后将其添加到UIViewController中,是不是很合适 在UIViewController中构建视图层次结构的标准位置是-

我有一个
UIViewController
比如viewControllerA,它包含一些视图元素,比如
UIButton
UILabel
等等。现在我的问题是,我应该在一个单独的
UIView
类中创建这些视图元素,然后添加
UIViewController
,或者我应该直接在
UIViewController
中创建这些视图元素。根据MVC,在一个单独的
UIView
类中创建视图元素,然后将其添加到
UIViewController
中,是不是很合适

在UIViewController中构建视图层次结构的标准位置是
-viewDidLoad
方法。每当创建UIViewController的视图时,都会调用该方法。视图控制器的视图将从NIB/故事板加载(如果适用);你的插座将被接线;然后调用
-viewDidLoad
,以执行进一步的自定义:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0,0.0,100.0,40.0)];
    [self.view addSubView:aLabel];
}
在Cocoa/Cocoa Touch中,您并不总是希望像在Java中那样对所有内容进行子类化。在内置类(如Objective-C类别、委派和预定义属性)中,通常还有其他扩展功能的首选方法


当然可以用另一种方式做这类事情,但这是最“像可可”的方式。实际上,最“类似可可”的方法是在Interface Builder中创建视图层次结构,但是,如果你想通过编程的方式来实现,这是通常的方式。

这完全取决于你的要求。你为什么不在xcode中的故事板中创建这些按钮和标签,然后将它们链接到VC类以进行操作和输出呢?@manujmv但相应地,MVC不适合将所有视图元素都放在其中一个单独的类?@Spectravideo328事实上,我想通过编程来完成。