У меня есть вид с вкладками с 5 вкладками. Также у меня есть панель навигации, и с помощью следующего кода я меняю цвет фона:
//Change navigation colors
viewController.navigationController?.navigationBar.barTintColor = UIColor.orange
viewController.navigationController?.navigationBar.tintColor = UIColor.white
viewController.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
Каждая вкладка имеет свой собственный контроллер представления, поэтому вместо того, чтобы помещать тот же код в метод viewDidLoad(), я создал класс UIHelper со статическим методом setupNavigation(viewController: UIViewController). Итак, в каждом viewController в методе :viewDidLoad() я просто вызываю метод
UIHelper.setupNavigation(viewController: self)
Есть ли более простой способ изменить глобальный цвет фона панели навигации?
Я использую Свифт 4.
Изменить: на самом деле у меня есть один MasterViewController, и каждый контроллер представления вкладки расширяет его. Итак, UIHelper.setupNavigation называется в viewDidDLoad() MasterViewController.
UIHelper.setupNavigation(viewController: self)помещается в егоviewDidLoad(). Я предполагаю, что другой ответ предлагает более глобальный и точный способ сделать это. Я собираюсь прочитать больше об этом. Спасибо за ответ 18.04.2018