将一个导航栏更改为透明会将所有导航栏更改为透明

Changing one navigation bar to transparent changes all navigation bars to transparent

我在我的应用程序的第一个视图中嵌入了一个导航控制器。

当我在一个视图上将导航栏更改为透明时,它会将其更改为对所有视图透明,但我似乎无法将其改回原样。

我希望它对我的一些视图透明,但不是全部。

要设置为透明我使用:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true

UINavigationController 对于此层次结构中的所有视图控制器都是通用的,如果您想更改某些视图控制器的半透明性,请更改特定控制器的 viewDidLoad.

将更改导航栏背景颜色的代码放在viewWillAppear中,然后在viewWillDisappear

中将颜色改回默认颜色

试试这个代码,

    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.backgroundColor = UIColor(red: 0.0, green: 0.3, blue: 0.5, alpha: 0.3)
    self.navigationController?.navigationBar.translucent = true

希望对您有所帮助