iOS:改变后退按钮的色调?

时间:2012-09-13 13:44:41

标签: iphone ios ipad uikit uibarbuttonitem

我有一个推动UIViewController的导航控制器。当用户按下某个按钮时,我想更改导航项的后退按钮的色调颜色。这可能吗?我尝试过使用[UIBarButtonItem appearance] setTintColor:但它只适用于初始化(例如在viewDidLoad中),而不是其他方式。

5 个答案:

答案 0 :(得分:7)

试试这个......

您需要在自定义视图中使用 UIBarButtonItem 。像这样:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 70, 30)];
[button addTarget:target action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"back_button.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"back_button_tap.png"] forState:UIControlStateHighlighted];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

将按钮放在导航栏中,通常在带有UINavigationController的控制器中:

self.navigationItem.leftBarButtonItem = buttonItem;

答案 1 :(得分:6)

对我来说最简单的事情是为所有uibarbutton项目设置色调颜色:

[[UIBarButtonItem appearance]setTintColor:[UIColor yourColor]];

然后明确地为我创建的显式导航按钮设置tintcolor&在导航栏上放置其他颜色...

当我想要做的就是改变色调时,让我省去了创建自定义按钮的麻烦。

答案 2 :(得分:3)

在点击按钮时调用的方法中,只需添加[self.navigationItem.backBarButtonItem setTintColor:[UIColor *whateverColorYouWant*]];我没有测试过,但我肯定99%可以使用

修改 刚试过它,它可以工作。

答案 3 :(得分:1)

这是一个更改后退按钮的文本和颜色的代码:

- (void)viewDidLoad
{
    UIBarButtonItem *backButton = [UIBarButtonItem new];
    [backButton setTitle:@"Back"];
    [backButton setTintColor:[UIColor yellowColor]];
    [[self navigationItem] setBackBarButtonItem:backButton];
}

答案 4 :(得分:0)

试试这个:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],[UIToolbar class], nil] setTintColor:[UIColor redColor]];