在iOS 6中的当前ViewController上更改backBarButtonItem颜色

时间:2014-03-21 20:39:59

标签: ios cocoa-touch backbarbuttonitem

我在UIPopoverController中有一个UINavigationController(带有UITableView)。当我在表视图中选择一行时,我会推送到一个新的UIViewController。此视图有一个带后退按钮的导航栏。在视图内有一个按钮。当我触摸此按钮时,我希望后退按钮改变颜色。这需要在iOS 6中运行。这可以在不创建自定义按钮的情况下实现吗?

以下是我的尝试:

- (IBAction)changeColor:(id)sender
{
    self.navigationItem.backBarButtonItem.tintColor = [UIColor redColor];

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

    [[UINavigationBar appearance] setTintColor:[UIColor redColor]];

    self.backButton.tintColor = [UIColor redColor]; // Created a UIBarButtonItem outlet and connected it in IB 
}

2 个答案:

答案 0 :(得分:3)

你可以使用

self.navigationController.navigationBar.tintColor = [UIColor blueColor];

在loadView或viewDidLoad

答案 1 :(得分:0)

您可以为按钮创建一个插座,然后更改色调颜色

@property (nonatomic, weak) UIBarButtonItem *item;

然后

-(void)buttonClicked { //or whatever method gets called with the button click
item.tintColor =  [UIColor blueColor]; 
//or 
item.tintColor = [UIColor redColor];
}

对于导航控制器,您只需要执行

    self.navigationItem.backBarButtonItem.tintColor = [UIColor blueColor];