iOS基础程序员

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];
    }
}

摘抄网易云课一张图


添加和移除关系图
上一篇 下一篇

猜你喜欢

热点阅读