繁体   English   中英

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

[英]Customise the navigation bar background for a single view in Swift?

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

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)
}

当我打开应用程序时,其他视图上的顶部栏看起来像预期的一样,当我打开该视图时,顶部栏看起来像我想要的那样。 但是,当我从该视图导航到其他视图时,其他视图继承了上面代码在顶部栏中所做的更改。

有没有一种方法可以防止这种情况,使导航栏仅针对该特定视图进行更改,而其余视图保持不变?

提前致谢!

任何特定的导航控制器只有一个导航栏,因此,如果在一个控制器中进行更改,则所有导航栏都将被更改。 解决该问题的方法是将其更改回viewWillDisappear(或viewDidDisappear)中其他控制器所需的位置。 如果您在弹出另一个控制器时回到同一实例,则可能还需要移动显示的代码以查看willAppear。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM