ios 5 changer l'arrière-plan du button de return dans le controller de navigation à transparent

J'ai personnalisé la barre de titre du controller de navigation avec une image d'arrière-plan, mais j'ai vraiment du mal à changer la couleur d'arrière-plan du button de return à transparent afin qu'il corresponde à la barre de titre verte en dessous. Je suis assez nouveau pour le développement iOS. Quelqu'un peut-il suggérer ce qui pourrait être fait?

Voici le code que j'ai utilisé pour changer la barre de titre du controller de navigation, juste au cas où cela aiderait:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMesortingcs:)] ) { UIImage *image = [UIImage imageNamed:@"greenbar.png"]; [self.navigationController.navigationBar setBackgroundImage:image forBarMesortingcs:UIBarMesortingcsDefault]; // [[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMesortingcs:UIBarMesortingcsDefault]; } //change back button image } 

EDIT : Après avoir fait un peu de search, j'ai réussi à get ce que je voulais. Voici le code pour changer l'image de fond pour le button de return:

  UIImage *image1 = [UIImage imageNamed:@"back-bt.png"]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:image1 forState:UIControlStateNormal barMesortingcs:UIBarMesortingcsDefault]; 

Le code ci-dessus ajoute l'image à tous les buttons de return dans le controller de navigation.

Vous ne pouvez pas modifier l'aspect du button de return par défaut, mais vous pouvez créer votre propre button pour le replace.

 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMesortingcs:)] ) { UIImage *image = [UIImage imageNamed:@"greenbar.png"]; [self.navigationController.navigationBar setBackgroundImage:image forBarMesortingcs:UIBarMesortingcsDefault]; // [[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMesortingcs:UIBarMesortingcsDefault]; } //change back button image if(self.navigationController.viewControllers.count > 1) { UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; [backButton setTitle:@"Back" forState:UIControlStateNormal]; [backButton addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside]; backButton.frame = CGRectMake(0.0f, 0.0f, 64.0f, 41.0f); UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; self.navigationItem.leftBarButtonItem = backButtonItem; } } - (void) didTapBackButton:(id)sender { if(self.navigationController.viewControllers.count > 1) { [self.navigationController popViewControllerAnimated:YES]; } }