当在一个ViewController中添加一个子ViewController时,UI部分可以直接通过addSubView的方法添加,例如:

在一个ViewControllerA中添加ViewControllerB,可以[self.view addSubView:ViewControllerB.view];//self为ViewControllerA

但是此时ViewControllerB可能会接收不到viewWillAppear,viewDidAppear,rotate之类的事件,这是因为ViewControllerB不在ViewControllerA的childViewController中,这就导致ViewControllerB本身不在事件响应链中(但是ViewControllerB的View在事件响应链中)。此时,如果要解决这个问题只需要将ViewControllerB加入到A的childViewController中,也就是通过执行下面的代码:

[self addChildViewController:ViewControllerB];//self为ViewControllerA

posted on 2016-04-08 00:46  ximenchuixie  阅读(691)  评论(0编辑  收藏  举报