如何更改UITabBarController的'更多'视图控制器tintColor?

时间:2013-11-18 15:45:24

标签: ios uitabbarcontroller uinavigationbar

我有七个UIViews连接到导航控制器 - 每个都有一个图标如下 -

enter image description here

由于链接超过5页 - 标签栏添加了更多图标 - 按下时会显示带有更多菜单选项的子页面 -

enter image description here

enter image description here

子页面和后续链接有一个导航栏 - 其颜色为蓝色,我想将其更改为橙色以匹配应用程序的其余部分。我的问题是如何设置这个样式,因为它没有出现在故事​​板中?

3 个答案:

答案 0 :(得分:12)

您可以使用UITabBarController的{​​{3}}属性访问该视图控制器。

正如您可以在文档中看到的那样:

  

此属性始终包含有效的更多导航控制器,即使屏幕上未显示“更多”按钮也是如此。您可以使用此属性的值在选项卡栏界面中选择更多导航控制器,或将其与当前选定的视图控制器进行比较。

因此,您可以执行类似

的操作
self.tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor orangeColor];

答案 1 :(得分:3)

UIBarButtonItem实例(如导航栏中的实例)从其最近的具有色调颜色集的父视图中获取其色调颜色。如果没有,则使用默认系统蓝色。 iOS 7 UI Transition Guide描述了如何一次为整个应用设置色彩颜色。

  

“文件”检查器的“界面生成器文档”部分中的“全局色调”菜单允许您打开“颜色”窗口或选择特定颜色。

答案 2 :(得分:1)

你可以使用tabBarController.moreNavigationController.view.tintColor = UIColor(color)。

或者在tabBarController的子类中,只需在viewDidLoad中调用self.view.tintColor = UIColor(Color),它将影响更多的屏幕和编辑屏幕。