自定义每个视图控制器中的UITabBar.appearance [Swift]

时间:2016-07-13 14:15:24

标签: ios swift uitabbar tabbar

我尝试将标签栏设置为在每个视图控制器上具有不同的背景图像。

class CharacterVC: UIViewController {

var tabBarApparence = UITabBar.appearance()

override func viewDidLoad() {
    super.viewDidLoad()

    tabBarApparence.backgroundImage = UIImage(named: "BlueTB") //Loaded from Image Asset
}

这样可以正常工作并在该视图中将其更改为蓝色,但是当我转到下一个视图时,它会保持蓝色并且不会更改为我使用此代码编程的红色:

class AnonVC: UIViewController {

var tabBarApparence = UITabBar.appearance()

override func viewDidLoad() {
    super.viewDidLoad()
    tabBarApparence.backgroundImage = UIImage(named: "RedTabBar")
    // addtional code here
}

我还有2个视图控制器,一个应显示图像的绿色版本,另一个应显示图像的紫色版本。

有什么建议可以解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

如果要在视图控制器中更改TabBar的外观非常简单。你可以在函数viewDidLoad或viewWillAppear中使用它。代码是下一个:

// Set color of titles and icons in tabBar
self.tabBarController?.tabBar.tintColor = UIColor.redColor()
// Set color of background tabBar
self.tabBarController?.tabBar.barTintColor = UIColor.blueColor()

答案 1 :(得分:1)

  1. 将代码替换为ViewWillApper()
  2. 更好地将backgroundImage设置为tabBar,而不是设置为UITabBar.appearance()