如何更改一个视图控制器的标签栏颜色?

时间:2017-03-30 05:36:24

标签: ios swift uitabbarcontroller

我的标签栏中的app委托中有一个白色的条形色调,但我需要在其中一个选定的索引上清楚。我将以下代码添加到需要清除的视图控制器中,但它保持清晰。我如何拥有它,这只适用于一个标签。

let tabBar = self.tabBarController?.tabBar
tabBar?.barTintColor = UIColor.clear
tabBar?.backgroundImage = UIImage()
tabBar?.shadowImage = UIImage()

2 个答案:

答案 0 :(得分:1)

如果你有UITabBarControllerDelegate,你可以使用

func tabBarController(_ tabBarController: UITabBarController,
                      didSelect viewController: UIViewController) {

    guard let index = self.viewControllers?.index(where: { $0 == viewController }) else {
        return
    }
    if index == 1 {
        self.tabBar.barTintColor = .black
    } else {
        self.tabBar.barTintColor = .yellow
    }
}

我的索引是因为我有导航控制器,这对我来说更容易,你可以尝试使用

if viewController is MyViewController {
    self.tabBar.barTintColor = .black
} else {
    self.tabBar.barTintColor = .yellow
}

答案 1 :(得分:0)

试试这个。在一个选项卡上设置UIColor.clear,在其他选项卡上设置不同的颜色。

let tabBar = self.tabBarController?.tabBar
let tabBarItems = tabBar?.items
if(tabBar?.selectedItem == tabBarItems?[0])
{
    tabBar?.barTintColor = UIColor.clear
}
else
{
    tabBar?.barTintColor = UIColor.red
}