后退按钮文本不会改变色调

时间:2015-05-20 01:38:51

标签: ios uinavigationcontroller uibarbuttonitem

我正在尝试更改某些视图的后退按钮文本颜色。我可以更改箭头颜色,但文本不会改变色调。我试过了:

setNeedsStatusBarAppearanceUpdate()

我也尝试过:

NSDictionary *dictionary = @{NSForegroundColorAttributeName : [UIColor redColor], NSShadowAttributeName : shadow, NSFontAttributeName : font};

[self.navigationItem.backBarButtonItem setTitleTextAttributes:dictionary forState:UIControlStateNormal];

我在Storyboard中设置了全局色调。它应该覆盖它吗?

如何更改文字?

3 个答案:

答案 0 :(得分:1)

您是否尝试过更改导航栏的色调?在storyboard中,转到UINavigationController。在大纲中,选择导航栏。然后在“属性”检查器中,更改“色调”颜色(在“视图”部分下)。这会更改默认后退按钮的颜色。

答案 1 :(得分:1)

你试过吗?

[self.navigationController.navigationBar setTintColor:[UIColor redColor]];

您可以在AppDelegate.m下的-(BOOL)application:application didFinishLaunchingWithOptions:launchOptions下添加该行,在我的情况下我出于某种原因以编程方式使用uinavigationcontroller。

所以我看起来像这样......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //..codes
     [self.navController.navigationBar setTintColor:[UIColor yourColor]];//fontColor
     //..codes
}

storyboard 中,您可以在查看>下找到它公用事业>显示属性检查器>查看>色调 ..改变那里的颜色,那就是..

嘿!我尝试了你的代码! :)它对我来说效果很好.. 我觉得你错了你的代码......

请勿将代码放在当前的viewcontrollers -viewDidLoad 中 在它之前将它添加到viewcontroller中..

像这样的东西...... //firstViewController.m

- (void)viewDidLoad
{
    //place your code here..
}

您将在//secondViewController.m

看到效果

答案 2 :(得分:0)

所以答案是将此代码放在导航堆栈中前一个类的prepareForSegue中。

NSString *backText = self.navigationItem.backBarButtonItem.title;
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backText style:UIBarButtonItemStylePlain target:nil action:nil];
NSDictionary *dictionary = @{NSForegroundColorAttributeName : <My Color Here>, NSShadowAttributeName : shadow, NSFontAttributeName : font};
[backButton setTitleTextAttributes:dictionary forState:UIControlStateNormal];
self.navigationItem.backBarButtonItem = backButton;

这似乎是一个非常糟糕的方式。在Storyboard中是否存在继承错误?我会尝试了解更多。