更改导航栏和工具栏中的导航控制器作为视图的色调

问题描述:

我有一个UINavigationController作为我的UIPopoverController的主视图。我想改变导航栏和工具栏的颜色色调,但似乎无法使其工作。更改导航栏和工具栏中的导航控制器作为视图的色调

任何人都可以指向正确的方向吗?

这里是我有代码不工作的代码。 哪里配色方案=的UIColor colorWithRed:0.228绿色:0.307蓝:0.492阿尔法:1.000] 下面是从的NSLog语句后的结果: 配色方案= UIDeviceRGBColorSpace 0.228 0.307 0.492 1

self.navController = [[UINavigationController alloc] 
         initWithRootViewController:serversMenu]; 
NSLog(@"Color Scheme = %@", self.appDelegate.colorScheme); 
self.navController.navigationBar.tintColor = self.appDelegate.colorScheme; 
self.navController.toolbar.tintColor = self.appDelegate.colorScheme; 

self.navController.navigationBar.translucent = YES; 
UIPopoverController *poc = [[UIPopoverController alloc] initWithContentViewController:self.navController]; 
poc.delegate = serversMenu; 
serversMenu.mainPopOver = poc; 
[poc release]; 

谢谢,

罗布

+0

你有这方面的解决方案吗? – 2011-02-15 10:15:34

这只是正常:

AboutViewController *avc = [[AboutViewController alloc] init]; 

UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:avc] retain]; 

avc.navigationController.navigationBar.tintColor = [UIColor greyColor]; /* or whatever color you choose */ 
toolbar.tintColor = [UIColor greyColor]; 

依赖于浩W使您选择创建UIPopoverController

+0

我一定在做错事。这就是我正在做的,模拟器中的色调没有改变。 – Rob 2011-01-07 15:43:43

这是一个错误...这是你的修复...创建UINavigationBar的的子类与此,因为它是唯一的新方法:

- (void)setTintColor:(UIColor *)tintColor 
{ 
    // Bug workaround. 
    [super setTintColor:[self tintColor]]; 
} 

我要去冒险出现在肢体上,并说这是iOS 4.2.x的PopOver/SplitView更新中的一个错误...我说“bug”,因为我已经把它设置得像你一样,在4.1之下它按预期工作。现在,在4.2.x下,它最初看起来不错,但是一旦你在popover中打开masterView,然后旋转回到双重分割,masterView的导航栏就是silver(ios默认值),并且不会有大量锤子敲打会获得masterView导航栏色彩重置为您的配色方案...

我不完全如何最好把它放在一个错误报告的形式,因为我自己并没有完全理解它。但它使用工作,我们没有做任何疯狂的事情!