iOS addChildViewController

iOS5.0之前只能在ViewController的view中不断的通过addSubView添加subView到VC的view视图层级中。
这样使得主ViewController中的内容越来越混乱,代码越来越多,subView的管理越来越困难。
iOS5.0之后按照MVC的原则,每个ViewController只需要管理一个view视图层次结构,因此我们可以使用childViewController来拆分开发中比较复杂的View。并且此时的childViewController拥有了与父ViewController同步的生命周期。

添加子控制器

//[childVC willMoveToParentViewController:superVC];//自动调用,可以省略
[superVC addChildViewController: childVC];
[superVC.view addSubview: childVC.view];
[childVC didMoveToParentViewController:superVC];//手动调,不可以省略

移除子控制器

[childVC willMoveToParentViewController:nil];//手动调用,不可以省略
[childVC removeFromParentViewController];
[childVC.view removeFromSuperview];
//[childVC didMoveToParentViewController:nil];//自动调用,可以省略

多个子控制器切换
  • (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion;

你可能感兴趣的:(iOS addChildViewController)