31

删除了无效的 ImageShack 链接

如您所见,我需要更改的视图是提供的用于自定义标签栏顺序的视图。我想更改导航栏的颜色(显示“Konfigurieren”,意思是“配置”),我已经知道如何更改“更多”-导航控制器的颜色,但不是这个。有人可以帮我吗?

4

8 回答 8

20

我认为您正在寻找的是这个(在您创建导航控制器时执行,通常在您的应用程序委托中):

UINavigationController *navigationController;
...
navigationController.navigationBar.tintColor = [UIColor blackColor];
于 2009-09-14T09:23:43.540 回答
15

使用 int AppDelegate

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
于 2010-06-02T10:05:30.230 回答
14

它肯定会工作!:-)

self.navigationController.navigationBar.tintColor  = [UIColor blackColor];
于 2010-08-27T06:18:04.967 回答
12

可以更容易(在标签栏委托中使用):

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers {
id modalViewCtrl = [[[tabBarController view] subviews] objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
    ((UINavigationBar*)[[modalViewCtrl subviews] objectAtIndex:0]).tintColor = [UIColor redColor];
}
于 2010-12-10T15:45:29.363 回答
7

有一种简单的方法可以更改所有导航栏样式,而不是单独更改每个样式。

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

只需在您的初始视图之一中设置此代码。这样,您的更多导航控制器和配置导航控制器(在更多导航控制器中单击“编辑”后出现)获得不同的样式。

像这样,您可以将其颜色更改为不同的颜色或更改背景图像。

希望这可以帮助。

于 2013-04-02T12:02:38.237 回答
3

我能够像这样更改 Configure NavBar 的颜色:

  1. 创建一个继承自 UITabBarController 的新类。
  2. 实现这个方法:

    -(void)beginCustomizingTabBar:(id)sender
    {
        [super beginCustomizingTabBar:sender];
    
        // Get the new view inserted by the method called above
        id modalViewCtrl = [[[self view] subviews] objectAtIndex:1];
    
        if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
        {
            UINavigationBar* navBar = [[modalViewCtrl subviews] objectAtIndex:0];
    
            [navBar setBarStyle:UIBarStyleBlackTranslucent];
            [navBar setTranslucent:YES];
        }
    }
    
于 2010-10-31T20:10:30.537 回答
2

根据 user486217 给出的答案,这可能更具防御性:

id modalViewCtrl = [controller.view.subviews objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromStrin(@"UITabBarCustomizeView")] == YES) {
    id navigationBar = [[modalViewCtrl 子视图] objectAtIndex:0];
    if ([navigationBar isKindOfClass:[UINavigationBar class]]) {
        ((UINavigationBar*)navigationBar).tintColor = [UIColor redColor];
    }
}}
于 2011-04-28T23:45:58.297 回答
1

如果您正在寻找标准颜色(灰色、黑色、白色),您可以在 xCode 5 中设置这些值。选择整个视图控制器,然后选择属性检查器。在属性下,您会在“顶部栏”旁边找到一个下拉菜单。在那里,您可以为导航栏控制器选择各种颜色和不透明度设置。

下面概述了一些屏幕截图。希望这可以帮助!

在此处输入图像描述

在此处输入图像描述

于 2013-09-23T04:06:35.317 回答