我的应用程序有一个UITabBar。由于它有太多的视图可以同时显示所有视图,因此它具有“更多”按钮,该按钮会下拉显示其余视图的tableView。我试图更改图标的颜色以匹配底部的其余图标,因为出于某种原因,底部图标的默认值为灰色,而更多视图中的图标为蓝色。我设法通过添加以下内容来实现它:
self.tabBarController?.moreNavigationController.view.tintColor = .grayColor()
我在viewDidLoad
函数的第一个标签的视图控制器中添加了这一行。再一次,这很有效,但把它放在那里感觉不对,所以我做了UITabBarController
并将该行放在该控制器的viewDidLoad
中。然后,我通过故事板将控制器与身份检查器的“自定义类”部分中的类字段连接起来。通过这种方式,TabBar不再使用它,图标变回蓝色。
我的问题是:我应该在第一个加载的viewController中保留该行吗?或者我应该把那条线完全放在其他地方?
答案 0 :(得分:0)
您是否尝试过使用
UITabBar.appearance().tintColor = UIColor.grayColor()
虽然这会影响View Controller可以访问的所有标签栏(我相信),所以要小心。但是它应该更改标签栏,无论它是UITabBar还是UITabBarController。
答案 1 :(得分:0)
试试这个:
创建一个扩展UITabBarController的新类,然后使用self.tabBarController?.moreNavigationController.view.tintColor = .grayColor()
使用
self.moreNavigationController.view.tintColor = .grayColor()
示例:
class TabBarViewController: UITabBarController{
override func viewDidLoad() {
super.viewDidLoad()
self.moreNavigationController.view.tintColor = .grayColor
}
}