UINavigationController changement de la barre de navigation de la teinte de la couleur à l'échelle mondiale et par programme
Ce code permet de changer la couleur d'un UINavigationBar
partout dans l'application. Cependant, j'ai remarqué que il ne change pas la UIColor
de la UINavigationBar
utilisé par UINavigationController
(le mien vient d'un UIStoryboard
).
UIColor* navBarColor = [UIColor colorWithRed:arc4random()%100/100.0
green:arc4random()%100/100.0
blue:arc4random()%100/100.0
alpha:1];
[[UINavigationBar appearance] setTintColor:navBarColor];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setAlpha:0.7];
Est-il un moyen d'accéder à la appearance
objet d'un UINavigationController's
barre de navigation? Je sais comment mettre des teintes de des contrôleurs individuels, mais je veux avoir un contrôle global sur la façon dont ils regardent.
Mise à jour:
Cela a été mon erreur, le code ne changer la UIColor
de tous les UINavigationBars
, mais il faut que la racine de la manette de navigation pour être couvert et découvert(par exemple la présentation d'un modal-vue-contrôleur), puis de re-dessiner lui-même avec de nouveaux UIColors
!
Merci!
Vous devez vous connecter pour publier un commentaire.
Maintenant dans iOS 8, nous pouvons définir la teinte de la couleur par la présente :-
Lorsque vous déclarez vos
UINavigationController
, essayez ceci:Vous pouvez modifier la barre de couleurs à l'échelle mondiale à l'aide de
appearance
proxy:UITextAttributeTextColor
etUITextAttributeShadowColor
ont été obsolète - utiliserNSForegroundColorAttributeName
etNSShadowAttributeName
à la place.La solution complète qui change la barre de navigation instantanément de couleur et se souvient de la préférence pour les lancements suivants peuvent être trouvés ici:
iPhone iOS comment redessiner UINavigationBar à la demande?