Comment puis-je personnaliser la couleur du texte du bouton de retour dans une vue d'en-tête UINavigationController?
Je suis en utilisant une mesure nuance de couleur sur mon UINavigationController de la barre de navigation, et parce que la couleur est si léger, que j'ai besoin d'utiliser la couleur sombre de texte. Il est relativement facile de remplacer le titre de la vue, et les boutons personnalisés, j'ai ajouté sur le côté droit, mais je n'arrive pas à obtenir un affichage personnalisé à coller sur le bouton retour. C'est ce que j'essaie maintenant:
UILabel *backLabel = [[UILabel alloc] initWithFrame:CGRectZero];
[backLabel setFont:[UIFont fontWithName:[[UIFont fontNamesForFamilyName:@"Arial Rounded MT Bold"] objectAtIndex:0] size:24.0]];
[backLabel setTextColor:[UIColor blackColor]];
[backLabel setShadowColor:[UIColor clearColor]];
[backLabel setText:[aCategory displayName]];
[backLabel sizeToFit];
[backLabel setBackgroundColor:[UIColor clearColor]];
UIBarButtonItem *temporaryBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:backLabel];
temporaryBarButtonItem.customView = backLabel;
[backLabel release];
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
[temporaryBarButtonItem release];]
La vue personnalisée, ne colle pas bien, et je ne vois pas tout, évidemment, moyen facile d'obtenir effectivement dans le texte à l'intérieur du bouton par défaut et commencer à changer son style.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de manière officielle pour ce faire. Les deux méthodes que je pouvais penser sont:
naviguer dans l'arborescence pour trouver l'existant bouton de Retour, et définissez la couleur du texte manuellement. Ce n'est probablement pas une bonne idée, car il est fragile, et le bouton peut même pas configurable textColor propriété.
créer votre propre bouton de retour (c'est à dire, avec votre propre image), et de définir sa couleur. C'est ce que nous faisons dans un certain nombre de lieux. C'est un peu plus de travail, mais les résultats sont exactement ce que vous voulez.
Cela fonctionne, résout la question d'origine (modifier la barre de navigation bouton de RETOUR et pas de boutons sur d'autres barres d'outils, pas de boutons sur l'onglet barres, etc):
J'ai essayé de la traversée de définir le texte, mais il finit par ups sur un UINavigationItemButtonView, ce qui semble juste de dessiner directement. Il n'y a aucun moyen de définir la couleur.
La seule façon que j'ai été en mesure de l'obtenir pour fonctionner est de convertir le texte en image, puis réglez le bouton de retour à l'image.
SkotchV est correct. Dans les précédentes versions du SDK, ils ont utilisé distinctes UIButton cas, ce qui a permis la personnalisation en parcourant les sous-vue de la hiérarchie. Il n'est plus possible.
@DrMickeyLauer
En itérant la hiérarchie pour définir la couleur du texte est possible dans mon environnement de développement.
Lorsque vous remplissez votre
UINavigationBar's
à gauche et à droite de vues, de votreUINavigationBar
auraUIButtons
comme des sous-vues. Si vous avez de la fantaisie et de la parentalité UIToolbars à votre barre de navigation, vous pouvez parcourir par le biais de votre barre de navigation.les éléments, la vérification de laUINavigationItems
(viaisKindOfClass:
). Ces éléments de navigation ont à gauche et à droite de l'élément de tableaux. Ces tableaux contiennent (entre autres choses) de la barre d'outils(s) que vous mettez dans la barre de navigation gauche et droite de vues. Ces de gauche et de droite des tableaux vous donnent accès à la barre d'outils duUIBarButtonItems
. Vous pouvez ensuite appelersetTitleTextAttributes
sur leUIBarButtonItems
pour définir leur texte et les couleurs d'ombre.Mais, comme Ben Gottlieb dit, c'est un fragile de l'approche. Elle vous laisse vous vous demandez si la barre de navigation de l'organisation qui va changer dans l'avenir.