为什么我们在AppDelegate中完全自定义UINavigationBar的barTintColor?

时间:2017-10-04 10:59:19

标签: ios swift uinavigationcontroller uinavigationbar appdelegate

有人写这种代码

override func viewDidLoad() {
    super.viewDidLoad()

    // Status bar white font
    self.navigationBar.barStyle = UIBarStyle.Black
    self.navigationBar.tintColor = UIColor.whiteColor()
}

但它不起作用,在AppDelegate中更新它确实有效,但为什么它不能从viewDidLoad工作?

4 个答案:

答案 0 :(得分:1)

如果您想更改导航栏背景颜色,请使用以下代码

self.navigationController?.navigationBar.barTintColor = UIColor.red // set what ever color that you wanr.

答案 1 :(得分:1)

试试这个:

override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationController?.navigationBar.barStyle = .black
        self.navigationController?.navigationBar.tintColor = UIColor.white

}

答案 2 :(得分:1)

您可以在XIB / Storyboard中设置这些属性。无需在每个控制器中进行设置。

如果要从视图控制器设置它,则需要self.navigationController?.navigationBar.barTintColor = typeyourcolor.

导航栏是导航控制器的属性,而不是视图控制器。

答案 3 :(得分:1)

如果您想更改导航栏背景颜色,请使用以下代码

self.navigationController?.navigationBar.barTintColor = UIColor.green

如果您想更改导航栏项目颜色,请使用下面的代码

self.navigationController?.navigationBar.tintColor = UIColor.red