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