在UINavigationbar中设置UIBarButtonItem的蓝色文本颜色在iOS 7中失败

时间:2013-09-30 17:04:40

标签: uinavigationbar ios7 uibarbuttonitem uinavigationitem

我正在尝试在运行时更改Navbar色调,我可以更改导航栏色调,但是左右按钮(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];
        }
    }

1 个答案:

答案 0 :(得分:4)

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

navigationController.navigationBar.tintColor = [UIColor blueColor];

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

enter code here