iOS 添加子VC的正确姿势
2018-09-11 本文已影响182人
Hello_kid
这几天在项目中需要在VC中添加做一个添加子vc的需求;
一般就是 添加子VC的view到父VC的view上,再添加子VC的view到父VC的view上;
但是这不是正确姿势; 今天看了下官方文档;需要调用以下这俩个方法
- (void)willMoveToParentViewController:(nullable UIViewController *)parent
- (void)didMoveToParentViewController:(nullable UIViewController *)parent
这个俩个方法是在添加vc和移除vc需要调用的;
- (void)addChildVc:(UIViewController*)vc view:(UIView *)view
{
BOOL needAddToParent = !vc.parentViewController;
if (needAddToParent) [self addChildViewController:vc];
vc.view.frame = view.bounds;
[view addSubview:vc.view];
if (needAddToParent) [vc didMoveToParentViewController:self];
}
- (void)removeChildVc:(UIViewController*)vc
{
[vc willMoveToParentViewController:nil];
if (![vc isViewLoaded]) {
[vc removeFromParentViewController];
}
else {
[vc.view removeFromSuperview];
[vc removeFromParentViewController];
}
}
摘抄网易云课一张图
添加和移除关系图