ios – 弹出视图控制器时更改导航栏颜色

前端之家收集整理的这篇文章主要介绍了ios – 弹出视图控制器时更改导航栏颜色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有三个视图控制器.在第一个视图控制器(FirstVC)中,导航栏的条形色调为clearColor,条形本身是半透明的.当我点击某些内容时,我会推送到导航栏需要不透明的SecondVC.所以我将barTintColor设置为某个颜色值,并将isTranslucent设置为false.当我从SecondVC推送到ThirdVC时,导航栏再次需要是半透明的.当我弹出ThirdVC并返回SecondVC时会出现问题.导航栏在一秒钟内显示为透明,然后根据需要变为不透明.我无法理解延迟的原因.

从SecondVC的viewWillAppear()调用以下方法.我试过从ThirdVC的viewWillDisappear()做同样的事情,但没有效果.

fileprivate func configureNavigationBar(){

        self.navigationController?.navigationBar.setBackgroundImage(nil,for: UIBarMetrics.default)
        self.navigationController?.navigationBar.shadowImage = nil
        self.navigationController?.navigationBar.isTranslucent = false
        self.navigationController?.navigationBar.barTintColor = Style.Movie.primaryBackgroundColor
        let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.white]
        self.navigationController?.navigationBar.titleTextAttributes = titleDict as? [String:Any]
    }

如果我向后滑动而不是点击后退按钮,它工作正常.

解决方法

在thiredVC中使用此功能
override func willMove(toParentViewController parent: UIViewController?) {
          self.navigationController?.navigationBar.barTintColor = color use in secondVC
    }

猜你在找的iOS相关文章