[英]iOS: Can't change the color of a UIBarButtonItem
我基本上有一個ViewController,它是UINavigationController的根ViewController。 基本上我有一個UIBarButtonItem,當用戶按下它時,其色調顏色應在紅色和綠色之間切換。 但是顏色似乎並沒有改變。 我的代碼:
@interface TestButtonColorViewController (){
BOOL colorMode;
}
@end
@implementation TestButtonColorViewController
- (void)viewDidLoad
{
[super viewDidLoad];
colorMode = NO;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Change" style:UIBarButtonItemStyleBordered target:self action:@selector(changeColor)];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)changeColor{
colorMode = !colorMode;
if (colorMode) {
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor redColor]];
}
else {
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor greenColor]];
}
}
正如CSmith所建議的,您應該直接設置色調:
- (void)changeColor {
colorMode = !colorMode;
if (colorMode) {
[self.navigationItem.rightBarButtonItem setTintColor:[UIColor redColor]];
} else {
[self.navigationItem.rightBarButtonItem setTintColor:[UIColor greenColor]];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.