设置后退按钮颜色

时间:2018-06-26 19:41:59

标签: ios xamarin.ios

我已将所有条形按钮项目(包括后退按钮)设置为...

UIBarButtonItem.appearance.tintColor = UIColor.red

但是,我想覆盖一页上的后退按钮颜色,但是找不到对后退按钮的引用。所有具有正确名称的参考都为空。

为什么它们都为空?后退按钮从哪里来?

2 个答案:

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

}

结果:

result

答案 1 :(得分:0)

您宁愿做的是设置navigationBar.tintColor

UINavigationBar.appearance.tintColor = .red

这会将颜色应用于每个导航栏。因此,您必须在要更改颜色的视图控制器中再次进行设置和重置。

viewWillAppear中:

self.navigationContoller?.navigationBar.tintColor = .blue

viewWillDisappear中:

self.navigationController?.navigationBar.tintColor = .red