iOS5.0之前只能在ViewController的view中不斷的通過addSubView添加subView到VC的view視圖層級中怕磨。
這樣使得主ViewController中的內容越來越混亂,代碼越來越多运褪,subView的管理越來越困難启涯。
iOS5.0之后按照MVC的原則涉兽,每個ViewController只需要管理一個view視圖層次結構深碱,因此我們可以使用childViewController來拆分開發(fā)中比較復雜的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;