7

J'ai cherché sur plusieurs forums différents et je n'arrive pas à trouver une réponse pour cela. J'ai ajouté un élément de barre à un contrôleur de navigation et défini son style sur UIBarButtonItemStyleDone. Lorsqu'il s'agit du premier contrôleur de la pile de navigation, le bouton s'affiche correctement en bleu. Cependant, lorsque le contrôleur est créé et poussé sur la pile, le style est ignoré et s'affiche en noir.UIBarButtonItemStyleDone ne crée pas de boutons bleus dans la barre de navigation lorsque le contrôleur est poussé

Je sais que ce problème se produit lorsque le tintColor a été modifié, mais j'utilise le standard UIBarStyleBlack et ne définit pas tintColor. J'ai aussi essayé de mettre tintColor à zéro, mais ça ne marche pas non plus.

Code pertinent:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 
    self.navigationItem.rightBarButtonItem = 
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                target:self 
                action:@selector(createNew:)]; 
    self.navigationItem.rightBarButtonItem.style = UIBarButtonItemStyleDone; 
} 

Toutes les idées ou solutions de contournement seraient grandement appréciés.

Répondre

10

Vous utilisez un élément système prédéfini, pour lequel la propriété style ne fait rien. Vous devez soit basculer vers l'élément système UIBarButtonSystemItemDone réel (qui est bleu, mais dit "Terminé"), ou passer à l'utilisation de -initWithImage:style:target:action: ou -initWithTitle:style:target:action: et de fournir votre propre image ou texte.

+0

Le bouton apparaîtra en bleu, donc la propriété de style doit faire quelque chose, elle apparaît simplement en bleu de manière incohérente. – Cameron

+0

Néanmoins, grahamparks a raison - utilisez l'élément système Terminé. – Bill

+0

Si vous faites: '[[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemDone cible: action de soi: @selector (createNew :)];' cela fonctionnera. Tout comme souligné par grahamparks –