В моем Main.storyboard У меня есть NavigationBar TintColor , установленный в по умолчанию .
В моем быстром Файл ниже у меня есть функция, где я пытаюсь обновить внешний вид нескольких элементов, таких как цвет панели поиска и цвет фона панели навигации. Изменение цвета для панели поиска работает, но цвет фона для панели навигации не работает.
Цвет фона для панели навигации должен основываться на цвете, выбранном в предыдущем View Controller, поэтому я касаюсь (selectedCategory?.color
).
Использование print(navBarColour)
Я подтвердил, что подбирается правильный / ожидаемый цвет, однако каким-то образом моя панель навигации по-прежнему показывает цвет по умолчанию.
Может кто-нибудь помочь, пожалуйста?
override func viewWillAppear(_ animated: Bool) {
if let colourHex = selectedCategory?.colour {
title = selectedCategory!.name
guard let navBar = navigationController?.navigationBar else {fatalError("Navigation does not exists.")}
if let navBarColour = UIColor(hexString: colourHex) {
navBar.barTintColor = navBarColour
navBar.tintColor = ContrastColorOf(backgroundColor: navBarColour, returnFlat: true)
navBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: ContrastColorOf(backgroundColor: navBarColour, returnFlat: true)]
searchBar.barTintColor = navBarColour
print(navBarColour)
}
}
}