UINavigationBar tintColor плохо себя ведет - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть проблема, когда установлен UINavigationBar tintColor.

Это плохо работает

Я использую Xcode 11.3.1, Swift 5, iOS 13,3

* MyClass

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    self.title = "test"
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.navigationBar.tintColor = #colorLiteral(red: 0.9708816409, green: 0.4246639013, blue: 0.3480253518, alpha: 1)
}

* результат

  1. реальное устройство https://imgur.com/sONr4vq

  2. симулятор https://imgur.com/vs5lhgR

Я хочу установить цвет кнопки наподобие заголовка

Я получаю ошибку только на реальном устройстве

Пожалуйста, помогите мне

Спасибо

Ответы [ 3 ]

0 голосов
/ 14 апреля 2020

Вы пытались использовать UIColor вместо #colorLiteral?

Как


self.navigationController?.navigationBar.tintColor = UIColor(red: 0.9708816409, green: 0.4246639013, blue: 0.3480253518, alpha: 1)

//or

self.navigationController?.navigationBar.tintColor = UIColor(displayP3Red: 0.9708816409, green: 0.4246639013, blue: 0.3480253518, alpha: 1)


Редактировать: Поскольку вышеприведенное не работает для вас, вы пробовали это?

self.navigationController?.navigationBar.tintColor = self.navigationController?.navigationItem.titleView?.backgroundColor

Учитывая, что все, что вам нужно, это чтобы кнопка и заголовок имели одинаковый цвет, верно?

0 голосов
/ 14 апреля 2020

Попробуйте получить доступ к navigationController.navigationBar вместо navigationController.view :

    self.navigationController?.navigationBar.tintColor = #colorLiteral(red: 0.9708816409, green: 0.4246639013, blue: 0.3480253518, alpha: 1)
0 голосов
/ 14 апреля 2020

Чтобы установить кнопку «Назад» и скрыть «назад»:

let backItem = UIBarButtonItem()
        backItem.tintColor = #colorLiteral(red: 0.9708816409, green: 0.4246639013, blue: 0.3480253518, alpha: 1)
        navigationItem.backBarButtonItem = backItem

Вам следует ввести этот код до ViewController перед пу sh новым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...