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 - то, что вы нам не сообщили.

Другие вопросы по тегам