Navigation bar style

TerflogagTerflogag Membre
juillet 2016 modifié dans API UIKit #1

Hello,


 


 


J'essaye depuis quelque jours de comprendre comment personnaliser ma navigation bar.


 


La méthode traditionnel pour toute l'application fonctionne parfaitement : 

 




UINavigationBar.appearance().barTintColor = self.orangeColor
UINavigationBar.appearance().tintColor = self.whiteColor
UINavigationBar.appearance().titleTextAttributes =
[
NSForegroundColorAttributeName : self.whiteColor
]

 

En revanche lorsque je souhaite le faire vue par vue, cela se complique. Pour certaines vues je souhaite avoir une navigation bar transparente avec : 

 




let bar:UINavigationBar! = self.navigationController?.navigationBar
bar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
bar.shadowImage = UIImage()
bar.backgroundColor = UIColor.clearColor()

ou pour d'autres vue une navigation bar orange : 


 



let bar:UINavigationBar! = self.navigationController?.navigationBar
bar.tintColor = AppearanceManager.orangeColor
bar.barTintColor = AppearanceManager.orangeColor
bar.titleTextAttributes =
[
NSForegroundColorAttributeName : AppearanceManager.whiteColor
]

Le soucis étant que si un style est appliqué à  une vue dans une hiérarchie, il est appliqué a toute les autres. Et une re application du style dans viewDidAppear n'y fait rien. Idem pour le titre qui disparait et que je re attribut dans le viewDidAppear, mais qui produit un temps ou il n'y a aucun titre.


 

Comment vous y prenez vous pour changer le style de votre navigation bar pour UNE vue de votre navigation en particulier ?

 

Bonne journée 

Réponses

  • CéroceCéroce Membre, Modérateur

    Le soucis étant que si un style est appliqué à  une vue dans une hiérarchie, il est appliqué a toute les autres.

    Non. C'est la même navigation bar. Elle a donc le même style.

    Et une re application du style dans viewDidAppear n'y fait rien. Idem pour le titre qui disparait et que je re attribut dans le viewDidAppear, mais qui produit un temps ou il n'y a aucun titre.

    Il me semble bien que ça marche, pourtant. Essaye aussi dans viewWillAppear, ça paraà®t plus logique.
Connectez-vous ou Inscrivez-vous pour répondre.