美文网首页iOS基础程序员
iOS 添加子VC的正确姿势

iOS 添加子VC的正确姿势

作者: Hello_kid | 来源:发表于2018-09-11 23:35 被阅读182次

    这几天在项目中需要在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];
        }
    }
    

    摘抄网易云课一张图


    添加和移除关系图

    相关文章

      网友评论

        本文标题:iOS 添加子VC的正确姿势

        本文链接:https://www.haomeiwen.com/subject/zuuygftx.html