ViewController有一个方法是addChildViewController,但是,我并不知道如何的管理这个添加上去的子类Controller。所以查找了资料,学习了他的一些相关方法,在这里做些简单的介绍。
首先是介绍添加Controller:
TowController *towCol = [[TowController alloc]init];
towCol.view.frame = self.view.bounds;
[self addChildViewController:towCol];//1
[self.view addSubview:towCol.view];//2
[towCol didMoveToParentViewController:self];//3
1.将towCol添加到Controller的childViewController,建立父子关系。可以通过parentViewController访问towCol的父类,调用addChildViewController方法系统会自动调用willMoveToParentViewController:方法。
2.将towCol的view加到父类的view上去,当然还要确定view在父类view上的frame。
3.调用child的 didMoveToParentViewController: ,以通知child,完成了父子关系的建立。
接着介绍移除一个Controller:
[towCol willMoveToParentViewController:nil]; //1
[towCol.view removeFromSuperview]; //2
[towCol removeFromParentViewController]; //3
1.通知child,即将解除父子关系,设置 child的parent即将为nil。
2.将child的view从父类的view中移除 。
3.通过removeFromParentViewController的调用真正的解除关系,removeFromParentViewController会自动调用
[towCol didMoveToParentViewController:nil]。
这样简单的添加和移除的就ok了。
Controller里面的viewWillAppear:(BOOL)animated在subview真正加到父view之前调用,viewDidAppear:(BOOL)animated在真正被add到父view之后调用,视图消失也是一样。
[towCol beginAppearanceTransition:YES animated:YES]触发towCol的viewWillAppear,[towCol beginAppearanceTransition:NO animated:YES]触发towCol的viewWillDisappear,和他们配套的[towCol endAppearanceTransition]分别触发viewDidAppear和viewDidDisappear
当然还有视图旋转的方法在这里就不介绍了,可以自己去找资料。
初次接触,我也只能了解这么多了,如果想要深入了解,可以自行查找资料。