2017-02-05 4 views
1

Если я поместил код в свою функцию DidFinishLaunchingWithOptions в AppDelegate, я легко могу изменить цвет панели вкладок, но если я вызову функцию с тем же кодом в ViewController, то она не изменится , Как я могу заставить его изменить после нажатия кнопки в контроллере представления, например?Изменить TabBar Color после того, как приложение загрузилось

Вот код в функции DidFinishLaunchingWithOptions:

UITabBar.appearance().tintColor = UIColor.white 
UITabBar.appearance().barTintColor = UIColor.black 

ответ

2

Использование appearance прокси устанавливает атрибуты для любого нового элемента управления, созданного впоследствии. Он не меняет никакого существующего связанного контроля.

Если вы хотите установить атрибуты конкретного существующего экземпляра, установите атрибуты непосредственно в элементе управления без использования прокси-сервера appearance.

someTabBar.tintColor = UIColor.purple 
someTabBar.barTintColor = UIColor.orange 
+0

Я бы также добавил (на основе OP), что код должен, вероятно, быть в viewWillAppear. – dfd