Swift - не удается обновить UITabBar barTintColor
В viewDidLoad
Я попробовал следующее, чтобы обновить фон или "barTintColor" моего UITabBar. Я могу сделать это с целью-с помощью [[UITabBar appearance] setBarTintColor:[UIColor blackColor]];
,
Что я пробовал:
UITabBar.appearance().barTintColor = UIColor.white
self.navigationController?.navigationBar.barTintColor = UIColor.white;
UINavigationBar.appearance().barTintColor = UIColor.white
UINavigationBar.appearance().backgroundColor = UIColor.white
Я бы хотел избежать странного решения NSNotificationCenter и обновления из AppDelegate. Почему это так сложно достичь в Swift? Был бы признателен за любое понимание.
2 ответа
Примечание: ниже методы должны работать в Swift 3
. Ниже код должен идти внутри вашего viewDidLoad
заставить его работать.
Способ 1:
tabBarController?.tabBar.barTintColor = UIColor.white
tabBarController?.tabBar.tintColor = UIColor.red
tabBarController?.tabBar.isTranslucent = false
Выход:
Способ 2:
Примечание: я устанавливаю barTintColour
зеленый, чтобы показать оба метода работы..
UITabBar.appearance().barTintColor = UIColor.green // Its strange why this method didn't worked for you?.Try updating your post with viewDidLoad.Its a better way to understand the issue.
UITabBar.appearance().tintColor = UIColor.purple
Выход:
Я могу сделать это с целью-с помощью
[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];
Ну, Свифт эквивалент этого UITabBar.appearance().barTintColor = UIColor.black
, (Я не знаю, почему вы код все относится к white
если ты хочешь black
.)
Тот факт, что вы говорите на Swift, а не на Objective-C, не имеет значения для этой функциональности. Если это работает в версии вашего приложения Objective-C, но не в версии Swift, то вы делаете что - то другое в версии Swift - то, что вы нам не сообщили.