0

我正在尝试在运行时更改导航栏的色调,并且我能够更改导航栏的色调,但是左右按钮(在 iOS 7 上是系统蓝色)发生了变化,所以我试图强制它们回到系统蓝色。这是我正在使用的代码,从 viewDidLoad 调用:我已经尝试过 NSForegroundColorAttributeName 和 UITextAttributeTextColor,但我不断收到白色或黑色文本,具体取决于导航栏的颜色。

如何让按钮显示蓝色文本?

    NSDictionary *btnAttr =   [NSDictionary dictionaryWithObjectsAndKeys:
                               [UIFont boldSystemFontOfSize:14], UITextAttributeFont,
                               [UIColor blueColor], NSForegroundColorAttributeName,
                               nil];
    for(UIView *v in [theView.view allSubViews])
    {
        if([v isKindOfClass:[UINavigationItem class]])
        {
            UINavigationItem *btn = (UINavigationItem *)v;
            [btn.leftBarButtonItem setTitleTextAttributes:btnAttr forState:UIControlStateNormal];
            [btn.rightBarButtonItem setTitleTextAttributes:btnAttr forState:UIControlStateNormal];
        }
    }
4

1 回答 1

4

在 iOS7 中,如果您需要更改导航栏按钮的颜色,您需要设置tintColor

navigationController.navigationBar.tintColor = [UIColor blueColor];

为了更好地理解,请查看下图:

在此处输入代码

于 2013-09-30T17:19:05.820 回答