iOS 添加子VC的正確姿勢

這幾天在項目中需要在VC中添加做一個添加子vc的需求;

一般就是 添加子VC的view到父VC的view上,再添加子VC的view到父VC的view上;

但是這不是正確姿勢; 今天看了下官方文檔;需要調(diào)用以下這倆個方法

- (void)willMoveToParentViewController:(nullable UIViewController *)parent 
- (void)didMoveToParentViewController:(nullable UIViewController *)parent 

這個倆個方法是在添加vc和移除vc需要調(diào)用的;

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

摘抄網(wǎng)易云課一張圖


添加和移除關系圖
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容