如何更改选项卡栏控制器中每个选项卡的外观?

时间:2015-04-04 09:00:25

标签: ios cocoa-touch swift

override func viewDidLoad() {   
    super.viewDidLoad()
    tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
}

我把它放在我的标签的一个视图控制器中。但是,这仅设置了特定视图。我将其复制并粘贴到所有其他控制器,但它只在我点击它们时才设置。 (如果我没有点击它们,viewDidLoad就不会运行。)

我希望所有标签在显示所有标签时立即显示此图像。

1 个答案:

答案 0 :(得分:0)

一个选项是遍历标签栏的所有控制器。在UITabBarController初始化(及其viewControllers已填充)之后,或在您的第一个视图控制器viewDidLoad中放置此代码(它只需要运行一次)。

// Loop through ALL the controllers in the TabBarController and set their tab bar item imageInsets.
for (index, controller) in enumerate(tabBarController.viewControllers) {
    controller.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
}