美文网首页
iOS 设置navigationController背景颜色失效

iOS 设置navigationController背景颜色失效

作者: Amuxiaomu | 来源:发表于2021-11-30 16:56 被阅读0次

    今天在做功能主题适配是发现,一个页面navigation背景颜色设置一直失败.查看代码也没有覆盖等操作,做了很多排除法.发现是其中一个功能页面导致的.但是在这个功能页面里面还是没法发现是生原因导致(因为没有对navigation进行操作).
    然后想了一下我这个页面集成SegmentController(封装了一个可切换的页面).然后这个页面需要对子ViewController的生命周期做管理,就需要对子ViewController进行操作

    加载

    /**
     加载View
     */
    - (UIView *)loadViewWithIndex:(NSInteger)index {
        id container = self.viewArray[index];
        UIView *view = nil;
        if ([container isKindOfClass:[UIView class]]) {
            view = container;
        }
        if ([container isKindOfClass:[UIViewController class]]) {
            UIViewController *viewController = container;
            [self addChildViewController:viewController];
            [viewController didMoveToParentViewController:self];
            view = viewController.view;
        }
        
        if (view) {
            [self.scrollView addSubview:view];
        }
        
        return view;
    }
    

    移除

    /**
     移除View
     */
    - (UIView *)removeViewWithIndex:(NSInteger)index {
        id container = self.viewArray[index];
        UIView *view = nil;
        if ([container isKindOfClass:[UIView class]]) {
            view = container;
        }
        if ([container isKindOfClass:[UIViewController class]]) {
            UIViewController *viewController = container;
            view = viewController.view;
            [viewController willMoveToParentViewController:nil];
            [viewController removeFromParentViewController];
            [viewController viewWillDisappear:NO];
        }
        [view removeFromSuperview];
        
        return view;
    }
    

    然后就在想是不是在子ViewController中设置导航栏的背景颜色才有效果.最终试了一下确实可以.

    总结:如果一个控制机对子ViewController进行了管理,导航栏的颜色就需要在子ViewController进行设置.

    相关文章

      网友评论

          本文标题:iOS 设置navigationController背景颜色失效

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