71 votes

comment changer la couleur du titre de navigation

Je pense que toute la journée pour changer la couleur du titre de la barre de navigation, mais cela ne fonctionne pas. c'est mon code:

 var user: User? {
    didSet {
        navigationItem.title = user?.name

         observeMessages()
    }
}
 

J'utilise didSet pour afficher le titre sur le titre de navigation.

194voto

roy Points 3200

Ajoutez ceci dans votre code. .

 let textAttributes = [NSForegroundColorAttributeName:UIColor.red]
navigationController?.navigationBar.titleTextAttributes = textAttributes
 

SWIFT 4:

 let textAttributes = [NSAttributedStringKey.foregroundColor:UIColor.red]
navigationController?.navigationBar.titleTextAttributes = textAttributes
 

SWIFT 4.2+:

 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.red]
navigationController?.navigationBar.titleTextAttributes = textAttributes
 

41voto

Tzar Points 859

La couleur du titre de la barre de navigation peut être modifiée dans Storyboard.

Accédez à l' inspecteur Attributs de Contrôleur de navigation > Barre de navigation et définissez la couleur souhaitée dans le menu Couleur du titre .


entrez la description de l'image ici

24voto

Chaos.Tong Points 51

définir ce premier

 navigationController?.navigationBar.barStyle = .default
 

alors l'un d'entre eux devrait fonctionner

 navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.red]
 

ou

 navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.red]
 

4voto

J. Koush Points 838

DidSet est appelé si vous définissez l'utilisateur, vous définissez peut-être la variable de nom d'utilisateur et attendez que le programme entre didSet. essayez de définir l'utilisateur.

Et si vous souhaitez modifier la couleur du texte lorsque le titre de navigation est remplacé par le nom de l'utilisateur, appelez simplement ce code.

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.red]

 var user: User? {
    didSet {
        navigationItem.title = user?.name
    }
}

override func viewDidLoad() {
    super.viewDidLoad()

    let newUser = User()
    newUser.name = "John Doe"
    user = newUser
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X