2016-03-11 1 views
-2

Je souhaite qu'un logo soit présent dans toute l'application. Mon application a un ensemble intégré le contrôleur de navigation donc je me suis dit que je pouvais mettre cette image dans le délégué de l'application comme ceci:Impossible de mettre à jour titleView image dans App Delegate (Swift)

let logo = UIImage(named: "logo") 
     let imageView = UIImageView(image:logo) 
     UINavigationBar.appearance().topItem?.titleView = imageView 

Mais il ne semble pas fonctionner. Y a-t-il quelque chose que je fais de mal?

+0

Pourquoi pensez-vous que cela ne fonctionne pas? Qu'espériez-vous voir, qu'avez-vous vu à la place? Si nous devons deviner ce qui ne fonctionne pas, il est peu probable que vous obteniez des réponses utiles. – Jonah

+0

Vous modifiez le 'titleView' de' topItem' à un moment donné. Dès que vous appuyez sur un contrôleur de vue ou que vous le déplacez, la commande 'topItem' change. – Jonah

+0

Hey Jonah L'image ne s'affiche pas du tout. – user3612986

Répondre

1

Vous ne pouvez pas réaliser cela en utilisant appearance() API. Au lieu de cela, vous devez fournir une vue d'image pour la vue de titre de l'élément de navigation de chaque contrôleur, ou vous pouvez sous-classer UINavigationBar pour ajouter une vue d'image qui sera toujours présente, quel que soit l'élément de navigation. Réglez ensuite tous les titres de vos contrôleurs sur une chaîne nulle/vide.