为什么在添加子视图控制器后需要再次添加子视图?

时间:2012-08-27 03:58:56

标签: objective-c ios uiviewcontroller

因为我有一个父视图控制器和一个子视图,所以 父视图控制器就像苹果文档所说的容器控制器,
然后做

[parentVC addChildViewController:childVC];
childVC.view.frame = SOMEFRAME;

但现在屏幕上还没有看到childVC;
我必须在下面添加代码吗?

[parentVC.view addSubview:childVC.view];//is a must? any code can replace?  

-
在我看来,容器是容器,当我添加了一个childVC时,它的视图应该自我添加,或某些方法可以做到这一点?

UIWindow有一个“rootViewController”属性,设置它时,新视图会自动添加,我想这就是我想要的。

我需要一些建议。谢谢。

1 个答案:

答案 0 :(得分:6)

这是一个简单的控制问题。通常你想拥有一个子视图控制器,但它的视图是你的一个子视图的子视图,而不仅仅是容器视图控制器的“顶级”视图属性的子视图。

基本上,框架选择让您决定,并且不强制包含的视图控制器的视图必须是其父视图控制器的第一代存在者。这完全取决于你; ViewControllers和Views的层次结构不需要具有完美的世代奇偶校验。