swift:改变导航栏的颜色
swift: change the color of the navigation bar
我正在使用带有红色调导航栏的 FirstViewController
。当我转到下一个 SecondViewController
时,我使用此代码清除导航栏颜色:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
但是当我返回 FirstViewController
时,我的导航栏颜色不是红色。很明显。但它应该是红色的。如何解决?
FirstViewController
中的代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.barTintColor = UIColor(red: 239/255, green: 210/255, blue: 166/255, alpha: 1.0)
}
设置FirstViewController
和ViewWillAppear
方法的导航栏颜色。
编辑您的问题。不清楚你希望你的导航栏是透明的还是红色的。
但是,您可以将其放入 AppDelegate
:
let mainVC = MainViewController()
let navigationController = UINavigationController(rootViewController: mainVC)
navigationController.navigationBar.barTintColor = .clear// or .red
而不是barTintColor
,使用backgroundColor
来改变navigationBar'r
颜色,即
在FirstVC
,
class FirstVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.backgroundColor = .red //here...
}
}
在SecondVC
,
class SecondVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.backgroundColor = .clear //here...
}
}
我正在使用带有红色调导航栏的 FirstViewController
。当我转到下一个 SecondViewController
时,我使用此代码清除导航栏颜色:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
但是当我返回 FirstViewController
时,我的导航栏颜色不是红色。很明显。但它应该是红色的。如何解决?
FirstViewController
中的代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.barTintColor = UIColor(red: 239/255, green: 210/255, blue: 166/255, alpha: 1.0)
}
设置FirstViewController
和ViewWillAppear
方法的导航栏颜色。
编辑您的问题。不清楚你希望你的导航栏是透明的还是红色的。
但是,您可以将其放入 AppDelegate
:
let mainVC = MainViewController()
let navigationController = UINavigationController(rootViewController: mainVC)
navigationController.navigationBar.barTintColor = .clear// or .red
而不是barTintColor
,使用backgroundColor
来改变navigationBar'r
颜色,即
在FirstVC
,
class FirstVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.backgroundColor = .red //here...
}
}
在SecondVC
,
class SecondVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.backgroundColor = .clear //here...
}
}