控制器父子關系的建立原則
- 如果2個控制器的view是父子關系(不管是直接還是間接的父子關系),那么這2個控制器也應該為父子關系
[a.view addSubview:b.view];
[a addChildViewController:b];
// 或者
[a.view addSubview:otherView];
[otherView addSubbiew.b.view];
[a addChildViewController:b];
獲得所有的子控制器
@property(nonatomic,readonly) NSArray *childViewControllers;
## 添加一個子控制器
>```
//XCOneViewController成為了self的子控制器
//self成為了XMGOneViewController的父控制器
[self addChildViewController:[[XCOneViewController alloc] init]];
// 通過addChildViewController添加的控制器都會存在于childViewControllers數(shù)組中
獲得父控制器
@property(nonatomic,readonly) UIViewController *parentViewController;
## 將一個控制器從它的父控制器中移除
>```
// 控制器a從它的父控制器中移除
[a removeFromParentViewController];
如果一個子控制器從父控制器中移除的時候會自動調用一次didMoveToParentViewController 方法