如何设置标签栏配置菜单的导航栏颜色

时间:2009-09-10 09:07:25

标签: iphone objective-c uitabbar tabbar

删除了死亡的ImageShack链接

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

8 个答案:

答案 0 :(得分:20)

我认为您正在寻找的是(当您创建导航控制器时,通常在您的应用代理中):

UINavigationController *navigationController;
...
navigationController.navigationBar.tintColor = [UIColor blackColor];

答案 1 :(得分:15)

使用int AppDelegate

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];

答案 2 :(得分:14)

它肯定会起作用! :-)

self.navigationController.navigationBar.tintColor  = [UIColor blackColor];

答案 3 :(得分: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];
}

答案 4 :(得分:7)

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

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

只需在您的一个初始视图中设置此代码即可。有了这个,您的更多导航控制器和配置导航控制器(在更多导航控制器中单击“编辑”后出现)将获得不同的风格。

像这样你可以改变它的颜色或改变背景图像。

希望这有帮助。

答案 5 :(得分:3)

我可以像这样更改配置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];
        }
    }
    

答案 6 :(得分:2)

基于user486217给出的答案,这可能更具防御性编码:

id modalViewCtrl = [controller.view.subviews objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromStrin(@"UITabBarCustomizeView")] == YES) {
    id navigationBar = [[modalViewCtrl subviews] objectAtIndex:0];
    if ([navigationBar isKindOfClass:[UINavigationBar class]]) {
        ((UINavigationBar*)navigationBar).tintColor = [UIColor redColor];
    }
}}

答案 7 :(得分:1)

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

以下概述了一些截图。希望这有帮助!

enter image description here

enter image description here