iOS - 如何在标签栏moreViewController中更改图标的颜色

时间:2014-07-22 08:41:51

标签: ios ios7 uitabbarcontroller tabbarcontroller

我想将moreNavigationController中的图标颜色(可能是徽章)从灰色更改为其他颜色。

我已阅读并成功更改了背景和文字的颜色。我做了这个"替换" moreViewController的数据来源(例如此处Customizing the More menu on a Tab bar描述)。但是在这里更新图标(也是textLabel值)没有任何效果。是否可以将此灰色更改为白色(或其他任何内容)?或者我必须实现自己的tabBarController? (任何好的教程?)

PS。我知道如何更改标签栏本身的图标,问题是如何在moreViewController中执行此操作?

谢谢! 彼得

4 个答案:

答案 0 :(得分:3)

如果它仍然与任何人相关。 您可以更改moreViewController的tableView中显示的图标颜色:

self.tabBarController?.moreNavigationController.topViewController?.view.tintColor = UIColor.redColor()

更改标题是这样的:

self.tabBarController?.moreNavigationController.navigationBar.topItem?.title = "MyString"

更改编辑按钮:

self.tabBarController?.moreNavigationController.navigationBar.tintColor = UIColor.redColor()

答案 1 :(得分:0)

您可以使用iOS 5中的新外观代理执行此操作。在您的app delegate的didFinishLaunching方法中:

[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]];
In iOS 7 use:

[[UITabBar appearance] setTintColor:[UIColor redColor]];

有关更多详细信息,请参阅UITabBar类参考。

答案 2 :(得分:0)

好的,通过对网络的长期研究和该主题中的答案,似乎在iOS7上无法更改moreViewController UITabBarController中显示的图标颜色(灰色)。可自定义标签栏的最佳解决方案是实现它(或使用一些库)。

谢谢!

答案 3 :(得分:0)

您可以更改颜色,只需将标签栏控制器子类化,并在其视图中加载添加以下代码

  override func viewDidLoad() {
    super.viewDidLoad()
    var view = self.moreNavigationController.topViewController.view as UITableView
    view.tintColor = Utilities.mainColor()
    view.separatorStyle = .None
  }

您可以在此处查看我的问题:Change tint color of tabbar edit view controller