[英]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.