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