我已将所有条形按钮项目(包括后退按钮)设置为...
UIBarButtonItem.appearance.tintColor = UIColor.red
但是,我想覆盖一页上的后退按钮颜色,但是找不到对后退按钮的引用。所有具有正确名称的参考都为空。
为什么它们都为空?后退按钮从哪里来?
答案 0 :(得分:0)
不使用appearance
代理即可尝试。将主窗口的tintColor
属性设置为默认颜色。然后在您特定的视图控制器的viewWillAppear
/ viewWillDisappear
中设置/重置特定颜色:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow? {
didSet {
// set your default tint color
window?.tintColor = .red
}
}
}
class SpecificViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.tintColor = .magenta
}
override func viewWillDisappear(_ animated: Bool) {
navigationController?.navigationBar.tintColor = nil
super.viewWillDisappear(animated)
}
}
结果:
答案 1 :(得分:0)
您宁愿做的是设置navigationBar.tintColor
。
UINavigationBar.appearance.tintColor = .red
这会将颜色应用于每个导航栏。因此,您必须在要更改颜色的视图控制器中再次进行设置和重置。
在viewWillAppear
中:
self.navigationContoller?.navigationBar.tintColor = .blue
在viewWillDisappear
中:
self.navigationController?.navigationBar.tintColor = .red