4

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

4

5 回答 5

7

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

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

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

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

于 2013-05-16T10:10:08.730 回答
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;
于 2012-09-13T14:09:24.877 回答
3

在单击按钮时调用的方法中,只需输入[self.navigationItem.backBarButtonItem setTintColor:[UIColor *whateverColorYouWant*]]; 我还没有测试过,但我有 99% 的把握它会起作用

编辑: 刚刚测试过,它有效。

于 2012-09-13T14:19:49.920 回答
0

尝试这个:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],[UIToolbar class], nil] setTintColor:[UIColor redColor]];
于 2013-05-22T06:51:01.613 回答
0

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

- (void)viewDidLoad
{
    UIBarButtonItem *backButton = [UIBarButtonItem new];
    [backButton setTitle:@"Back"];
    [backButton setTintColor:[UIColor yellowColor]];
    [[self navigationItem] setBackBarButtonItem:backButton];
}
于 2012-10-10T15:16:29.213 回答