Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 在同一个ViewController中具有子视图是否正确?_Objective C_Addsubview_Subviews_Xcode4.1 - Fatal编程技术网

Objective c 在同一个ViewController中具有子视图是否正确?

Objective c 在同一个ViewController中具有子视图是否正确?,objective-c,addsubview,subviews,xcode4.1,Objective C,Addsubview,Subviews,Xcode4.1,这是我的问题。我有一个ViewController,我想在不同的位置添加两个不同的视图(一个上视图和另一个下视图),但它们会同时出现,使用方法“addSubview”,但我不知道这是否正确,在一个ViewController中有不同的子视图 我没有使用情节串连板,我使用的是XCode4.1到iOs 4.3您混淆了视图和视图控制器 视图控制器可以控制以显示其数据和执行其业务逻辑的视图数量没有严格限制 视图可以拥有的子视图数量也不受限制 只有一件事。如果这些视图彼此相当独立,则不要将其中一个视图作为

这是我的问题。我有一个ViewController,我想在不同的位置添加两个不同的视图(一个上视图和另一个下视图),但它们会同时出现,使用方法“addSubview”,但我不知道这是否正确,在一个ViewController中有不同的子视图

我没有使用情节串连板,我使用的是XCode4.1到iOs 4.3

您混淆了视图和视图控制器

视图控制器可以控制以显示其数据和执行其业务逻辑的视图数量没有严格限制

视图可以拥有的子视图数量也不受限制

只有一件事。如果这些视图彼此相当独立,则不要将其中一个视图作为另一个视图的子视图。如果a是基础视图,b和c是独立子视图,则执行以下操作: [a添加子视图:b]; [a addSubView:c]


问题在哪里

谢谢你抽出时间。这和我的处境不太一样。我有一个ViewController A,在这个ViewController中我声明了UIViewController“x”和UIViewController“y”。现在,在viewDidLoad方法中,从“A”开始执行以下操作:“[A addSubView:x.view];[A addSubView:y.view]”。那么,这是对的吗?不,那是不对的。如果x和y是视图控制器(属于UIViewController或从UIViewController继承的类的对象),则不能使用addSubView:添加它们。如果是视图控制器,则不能在上使用addSubView。只能将子视图添加到视图(从UIView继承的对象)。所有这些视图控制器都可以由同一个视图控制器控制。只需为一件简单的事情增加一些复杂性:您可以创建多个具有相关视图的视图控制器,并将这些视图控制器添加到由另一个视图控制器控制的视图中。这绝非明智之举。但这是可以做到的。由于您使用的是SDK 4.x,您无法使用6.x(我认为)中引入的UIContainerView来实现这一目的。因此,如果A有一个UIView,“x”和“y”也有一个UIView,我可以添加[A.view addSubView:x.view]和[A.view addSubView:y.view]"? 对吗?如果你需要的话就去做。但是,请自问是否确实需要同时显示多个视图控制器。如果你这样做了,那就去做。最终,它们与其他对象一样,都是objective-c对象,可以创建、使用、引用以及其他一切。