2

Sur l'iPhone et l'iPad, j'ai besoin de présenter deux boutons sur le côté droit d'une barre de navigation. Je fais cela avec l'extrait de code suivant:Changer les couleurs d'un UIToolbar + ses boutons lorsqu'il est présenté dans un contrôleur Popover sur l'ipad

UIToolbar *rightBarButtons = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 92, 44.01)]; 
UIBarButtonItem *send = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                     target:self 
                     action:@selector(send)]; 
[send setStyle:UIBarButtonItemStyleBordered]; 
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                     target:self 
                     action:@selector(addRecipe:)]; 
[add setStyle:UIBarButtonItemStyleBordered]; 
NSArray *buttons = [[NSArray alloc] initWithObjects:send,add,nil]; 
[send release]; 
[add release]; 
[rightBarButtons setItems:buttons]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBarButtons]; 
[buttons release]; 
[rightBarButtons release]; 

Sur l'iPhone, les couleurs sont très bien, et en mode paysage sur l'iPad, il est très bien comme ils sont gris. Cependant, en mode portrait, la vue apparaît à l'intérieur d'un contrôleur popover qui a une couleur noir/bleu foncé. Mes boutons et la barre d'outils s'affichent en tant que gris par défaut.

Comment puis-je faire correspondre les boutons de la barre d'outils? Si vous n'utilisez pas le hack ci-dessus et que vous ne présentez qu'un bouton comme d'habitude, le changement de couleur est géré et je suppose que j'ai juste besoin d'implémenter manuellement ce changement de couleur, le problème est que je n'arrive pas à changer de couleur.

Répondre

0

Cela semble être une propriété appelée barStyle et non tintColor comme je le pensais précédemment. La solution la plus simple est de copier le style de la barre d'ailleurs:

[rightBarButtons setBarStyle:self.navigationController.navigationBar.barStyle]; 

Il est alors assez trivial pour assurer le style reste correct que la vue change. Bien que je dois dire que j'ai bien aimé les boutons noirs bleu foncé sur la barre de navigation en argent qui a donné après la rotation.