Ios 在Swift中为单个视图自定义导航栏背景?

Ios 在Swift中为单个视图自定义导航栏背景?,ios,swift,uinavigationcontroller,Ios,Swift,Uinavigationcontroller,我有一个具有多个视图和控制器的应用程序,但在其中一个视图上,我希望顶部的导航栏以白色文本透明。我在所述视图的控制器中有以下代码: override func viewDidLoad() { super.viewDidLoad() let bar:UINavigationBar! = self.navigationController?.navigationBar bar.tintColor = UIColor.whiteColor() bar.setBack

我有一个具有多个视图和控制器的应用程序,但在其中一个视图上,我希望顶部的导航栏以白色文本透明。我在所述视图的控制器中有以下代码:

override func viewDidLoad() {
    super.viewDidLoad()

    let bar:UINavigationBar! =  self.navigationController?.navigationBar

    bar.tintColor = UIColor.whiteColor()
    bar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    bar.shadowImage = UIImage()
    bar.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
}
当我打开应用程序时,其他视图上的顶栏看起来与预期的一样,而当我打开此视图时,顶栏看起来就像我想要的那样。但是当我从这个视图导航到其他视图时,其他视图会将上面代码所做的更改继承到顶栏

有没有办法防止这种情况发生,使导航栏只针对特定视图进行更改,而其余视图保持不变


提前谢谢

对于任何特定的导航控制器,只有一个导航栏,因此,如果在一个控制器中更改它,则所有控制器的导航栏都将更改。解决此问题的方法是将其更改回ViewWillEnglish(或ViewDidEnglish)中其他控制器所需的任何值。当另一个控制器弹出时,如果返回到同一个实例,您可能还需要移动显示以查看的代码。谢谢,这肯定有助于解决问题。似乎需要将同一代码重复几次(对于ViewWillEnglish和ViewWillDisplay)。