iOS 同navigationController下 不同vc不同颜色导航栏的push/pop 渐变过渡

苦于设计师老喜欢在一个app里设置两种不同颜色的vc 风格.

navigationBar的颜色还能通过把navigationBar的背景设置为透明再在vc中搭颜色

但navigationBar中的按钮,标题等  都无法很好地独立控制

除非把navigationBar加在vc中,让vc完全独立控制

这又失去了iOS 过渡动画的一些特性,看着不爽

比较理想的是微信的效果,能在push/pop动画中渐变修改不同状态下的颜色来达到不同风格效果

效果如下

iOS 同navigationController下 不同vc不同颜色导航栏的push/pop 渐变过渡

注意看那个返回按钮的箭头颜色

于是...

需每个vc独立控制当前显示navigationBar的颜色配置,可在每个viewWillAppear中使用

    [self.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext>  _Nonnull context) {
        self.navigationController.navigationBar.tintColor = [UIColor blueColor]; //控制按钮颜色
        self.navigationController.navigationBar.barTintColor = [UIColor orangeColor]; //控制导航栏背景色 按需设置
    } completion:^(id<UIViewControllerTransitionCoordinatorContext>  _Nonnull context) {
    }];

iOS 同navigationController下 不同vc不同颜色导航栏的push/pop 渐变过渡

上一篇:Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法(Matt Galloway著)读书笔记(一)


下一篇:app自动化 - 元素定位不到?别慌,3大工具帮你搞定!