Objective c 添加childViewController的目的到底是什么?

Objective c 添加childViewController的目的到底是什么?,objective-c,xcode,uiviewcontroller,Objective C,Xcode,Uiviewcontroller,我有一个家长控制器 parentViewController有3个子项 安纳控制器, 山猫控制器, 摇控器 (非真名) 在任何时候,只能存在一个此类控制器的视图。转换通过以下方式完成: [self transitionFromViewController:fromController toViewController:toViewController duration:duration options:options animations:animations completion:^(BOOL

我有一个家长控制器

parentViewController有3个子项

安纳控制器, 山猫控制器, 摇控器

(非真名)

在任何时候,只能存在一个此类控制器的视图。转换通过以下方式完成:

[self transitionFromViewController:fromController toViewController:toViewController duration:duration options:options animations:animations completion:^(BOOL finished)
一切正常

但是,把安、鲍勃和查理作为父母的孩子又有什么意义呢

起初我认为是这样的,在从ViewController转换的过程中,ViewWillDisplay和ViewWillEnglishe被自动调用

但不管viewController是否为子级,它都会被调用

当父母接到电话时,ViewWillExample和ViewWillEnglishe可能会被呼叫。但这很容易做到

当然,只有实际位于ParentController.view的视图层次结构中的视图才会调用它们的viewwillbeen和viewwilldefine,对吗?还是这样

那么Ann、Bob和Charlie是父控制器的孩子这一事实到底是什么呢

当且仅当childController的视图是层次结构的一部分时,在父视图将出现时,它是否会遍历其所有子视图并调用其视图将出现?还是什么

事实上


注意:我很清楚视图包含的含义。我问它到底做什么?例如,其中一个答案说它通过旋转传递。对但是,它是否对视图位于parentViewController.view层次结构中的所有子视图或唯一子视图执行此操作?还是什么?

简短的回答: 添加
childViewController
允许您将视图控制器中的事件重定向到已定义的具有其子级的其他控制器

长答案:
addChildViewController
是iOS 5及更高版本的一部分。它是一种称为“
查看控制器安全壳
”的功能。这背后的基本思想是,可以将视图控制器嵌入到自己的其他视图控制器中。它非常强大,因为它允许您编写自己的
tabViewController
customNavigationController
,例如

View controller containment
的主要功能是,它试图确保所有包含的视图控制器都将获得适当的消息。一个简单的例子是当您旋转设备时,如果您没有添加
addChildViewController
,旋转更改事件将不会传递到视图层次结构

视图周期(如您所提到的调用)(
viewwillbeen,viewwilldecome
)由视图控制器管理,因此它是一个不同的故事


看看官方网站,了解定制集装箱控制器的功能。

我很清楚视图集装箱的含义。我问它到底是做什么的?你的意思是ViewWillDisplay与childViewController无关?添加一个childViewController并不意味着调用ViewWillDisplay,它只是将一个控制器定义为一个子控制器,以便转发事件-rtfm:-)类似于什么的事件?是否显示视图?我的视图无论如何无法旋转。所以我不应该使用childViewController?