更改UINavigationItem颜色

Mis*_*sha 5 iphone xcode objective-c uinavigationbar

我需要为我的UINavigationBar按钮设置自定义颜色.我正在做以下事情(RGB func是一个定义):

- (void)viewWillAppear:(BOOL)animated
{

for (UIView *view in self.navigationController.navigationBar.subviews)      
    if ([[[view class] description] isEqualToString:@"UINavigationButton"])
        [(UINavigationButton *)view setTintColor:RGB(22.0,38.0,111.0)];

 }
Run Code Online (Sandbox Code Playgroud)

应用程序加载一切正常.离开视图后返回颜色返回默认值.

其次,我需要将相同的颜色设置为UISegmentedControl到按下的按钮.

Nik*_*dav 0

这是一种方法:

[[theNavigationBar.subviews objectAtIndex:1] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[theNavigationBar.subviews objectAtIndex:2] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

然而,巨大的警告。这很可能会在未来的操作系统版本中出现问题,因此不建议这样做。

至少您应该执行大量测试并确保您对导航栏子视图布局的假设是正确的。或者您可以通过更改 UINavigationBar 的tintColor 属性来更改颜色

myBar.tintColor = [UIColor greenColor];
Run Code Online (Sandbox Code Playgroud)

或者您可以点击以下链接 http://www.skylarcantu.com/blog/2009/11/05/changing-colors-of-uinavigationbarbuttons/