【问题标题】:Navigation bar color changes to black in pushed view controller in swift2.3swift2.3中推送视图控制器中导航栏颜色变为黑色
【发布时间】:2018-07-27 01:19:49
【问题描述】:

Dashboard 是一个 UINavigationController 作为根视图控制器。我在 AppDelegate 中放了几行使其透明:

let barAppearace = UIBarButtonItem.appearance()
barAppearace.setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -400), forBarMetrics:UIBarMetrics.Default)
barAppearace.setTitleTextAttributes(["NSFontAttributeName":UIFont.customFontOfSize(14, style: FontName.kHelveticaNeue)], forState: .Normal)
barAppearace.tintColor = UIColor.whiteColor()

UINavigationBar.appearance().backgroundColor = UIColor.clearColor()
UINavigationBar.appearance().barTintColor = UIColor.clearColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)

当我从仪表板推送视图控制器时,推送的视图控制器导航栏颜色变为黑色。

我想要与仪表板导航栏相同的外观。我已经完成了已经回答的问题。但仍然没有运气。

【问题讨论】:

  • 添加一些代码。你是如何尝试改变颜色的?
  • 看一次可能对你有帮助:stackoverflow.com/questions/25845855/…
  • 在仪表板屏幕上它工作正常。但是当我从仪表板屏幕推送视图控制器时。新推送的控制器导航栏颜色变为黑色。
  • 否则显示您的代码
  • @Anbu.karthik 编辑问题并包含代码。

标签: ios swift xcode colors uinavigationbar


【解决方案1】:

对于完全透明的导航栏

self.navigationController.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController.navigationBar.shadowImage = UIImage()
self.navigationController.navigationBar.isTranslucent = true
self.navigationController.navigationBar.backgroundColor = .clear
self.navigationController.view.backgroundColor = .clear

您甚至可以将此代码用于基类并将其继承用于透明导航栏。

【讨论】:

  • 我知道这个 JhanviR。谢谢你。我已经尝试过了,但我仍然没有在推送视图控制器中获得透明的导航栏。虽然我在仪表板上获得了所需的效果。
【解决方案2】:
let barAppearace = UIBarButtonItem.appearance()
barAppearace.setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -400), forBarMetrics:UIBarMetrics.Default)
barAppearace.setTitleTextAttributes(["NSFontAttributeName":UIFont.customFontOfSize(14, style: FontName.kHelveticaNeue)], forState: .Normal)
barAppearace.tintColor = UIColor.whiteColor()

UINavigationBar.appearance().backgroundColor = UIColor.clearColor()
UINavigationBar.appearance().barTintColor = UIColor.clearColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)

I put a background image in view controller and applied below constraints to it. I achieved the desired result:

backgroundImage.centerX = view.CenterX
backgroundImage.centerY = view.CenterY
backgroundImage.height = view.height
backgroundImage.width = view.width

* view: Managed by viewcontroller property view.
* backgroundImage: subview added to view with above constraints.

【讨论】:

  • 您是否也在仪表板视图控制器中做同样的事情?得到那个黄色的图像?
  • @hardikparmar 是的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 2022-01-18
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多