Без изменений barTintColor UINavigationBar на iOS 13,4 - PullRequest
6 голосов
/ 25 марта 2020

После обновления XCode до версии 11.4 (11E146) на iOS 13.4 barTintColor изменяется только через раскадровку. В коде изменения игнорируются.

self.navigationController.navigationBar.barTintColor = UIColor.redColor;

Также проблема с цветом заголовка.

enter image description here

Исправлено в Xcode 11.4.1: Fixed in Xcode 11.4.1

Ответы [ 3 ]

10 голосов
/ 26 марта 2020

У меня была та же проблема, что исправило ее для меня так:

На раскадровке для вашего Navigation Controller измените «Bar Tint» на значение «Default», затем в своем коде вы можете изменить его, как обычно.

    // For the navigation bar
    navigationController?.navigationBar.barTintColor = .red

    // For the title
    let attributes = [NSAttributedString.Key.foregroundColor: UIColor.white ]
    navigationController?.navigationBar.titleTextAttributes = attributes

enter image description here

У меня есть код в viewDidLoad ()

enter image description here

Как ни странно для меня, это также исправило проблему, которая у меня была с "Строка состояния".

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

Это была ошибка в Xcode 11.4. Исправление заключается в обновлении до Xcode 11.4.1.

Исправление специально упоминается в примечаниях к выпуску: https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_1_release_notes

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

Это изменение было внесено в то, как Xcode кодирует эти свойства для UINavigationBar - теперь они используют API UINavigationBarAppearance, представленный в iOS 13.

Если вы измените стандартное представление UINavigationBar вместо старого API внешнего вида, то вы должны получить модификации, которые вы ищете.

...