当在一个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
时间: 2024-11-06 23:08:33