Set the image's rendering mode to UIImageReneringModeAlwaysTemplate
(this topic is covered at around 33:00 in the WWDC video mentioned in the previous answer):
UIImage *backButtonImage = [UIImage imageNamed:@"imageName.png"];
backButtonImage = [backButtonImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIBarButtonItem * backButton = [[UIBarButtonItem alloc]
initWithImage:backButtonImage
style:UIBarButtonItemStylePlain
target:nil
action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
[[[self navigationItem] backBarButtonItem] setTintColor:[UIColor redColor]];
The last line is not necessary if you have set the tintColor
globally in AppDelegate.h
:
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];