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

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

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

  1. fileprivate func configureNavigationBar(){
  2.  
  3. self.navigationController?.navigationBar.setBackgroundImage(nil,for: UIBarMetrics.default)
  4. self.navigationController?.navigationBar.shadowImage = nil
  5. self.navigationController?.navigationBar.isTranslucent = false
  6. self.navigationController?.navigationBar.barTintColor = Style.Movie.primaryBackgroundColor
  7. let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.white]
  8. self.navigationController?.navigationBar.titleTextAttributes = titleDict as? [String:Any]
  9. }

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

解决方法

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

猜你在找的iOS相关文章