У меня есть вид с вкладками с 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