Просто чтобы прояснить ситуацию немного ...
Если вы хотите изменить внешний вид для всех элементов панели вкладок, используйте:
Objective-C :
[[UITabBarItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor :[UIColor someColor]} forState:UIControlStateSelected];
Swift :
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.someColor()], forState: .Selected)
Однако , если вы просто хотите установить внешний вид одного элемента, сделайте это так:
Объектив-C :
[self.tabBarItem setTitleTextAttributes:@{UITextAttributeTextColor :[UIColor someColor]} forState:UIControlStateSelected];
Swift :
tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.someColor()], forState: .Selected)
Примечание : tabBarItem
является собственностью UIViewController
.Это означает, что хотя у каждого UIViewController
есть это свойство, оно может не совпадать с tabBarItem
, которое вы ищете.Это часто тот случай, когда ваш контроллер представления заключен в UINavigationController
.В этом случае получите доступ к tabBarItem
на контроллере навигации, а не к корневому (или другому) контроллеру представления.