【问题标题】:Navigation bar changes upon returning to previous VC返回上一个 VC 时导航栏发生变化
【发布时间】:2017-02-21 17:29:53
【问题描述】:

我的导航栏样式存在一些问题。假设我有两个视图控制器。

VC 1 有一个带有白色文本的橙色条,我设置如下:

   func stylingStuffs(){
    self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 1)
    self.navigationController?.navigationBar.backgroundColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 1)
    self.navigationController?.navigationBar.tintColor = UIColor.white
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]
    self.navigationController?.navigationBar.isTranslucent = false
    UIApplication.shared.statusBarStyle = .lightContent
}

VC 2 有一个透明的导航栏,其代码是:

func stylingStuffs(){
    navigationController?.setNavigationBarHidden(false, animated: true)
    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
    self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 0)
    self.navigationController?.navigationBar.backgroundColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 0)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.isTranslucent = true
    navigationController?.navigationBar.tintColor = UIColor.white
    self.navigationController?.navigationBar.barStyle = .default
    UIApplication.shared.statusBarStyle = .lightContent
}

当我从 VC1->VC2 导航时一切正常,当我从 VC2->VC1 导航时,VC1 的导航栏和状态栏现在都是白色/透明的。

我该如何解决这个问题,或者我猜想在返回 VC1 时重置样式?

提前致谢!

【问题讨论】:

  • 你很困惑,因为实际上只有一个导航栏。它是两个视图控制器所在的一个导航控制器的一部分。
  • 是的,您必须在返回 vc1 时重置样式。

标签: ios swift swift3 uinavigationcontroller uinavigationbar


【解决方案1】:

首先查看VC 1控制器viewDidAppear调用stylingStuffs()

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated: animated)

    stylingStuffs()
}

@rmaddy评论

你很困惑,因为实际上只有一个导航栏。它是两个视图控制器所在的一个导航控制器的一部分

所以需要为VC 1重置导航栏样式

【讨论】:

  • @Kingalione UINavigationBar.appearance().setBackgroundImage(UIImage(), for: UIBarMetricsDefault)
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2021-06-10
  • 2018-10-28
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多