Comment puis-je changer la police de caractères de la touche retour pour ma barre de navigation?
Comment puis-je changer la police de caractères de la touche retour pour ma barre de navigation.
L'arrière bouton "retour" ou le titre de la précédente-vue-contrôleur.
Je pensais que ce viewDidLoad
devrait fonctionner:
navigationController?.navigationItem.leftBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "FONTNAME", size: 20)!], forState: UIControlState.Normal)
mais la leftBarButton?
facultatif retourne nil
.
- Voulez-vous que la police soit la même pour chaque bouton de la barre d'élément dans l'application ou tout simplement sur le bouton de retour?
- Je suis en supposant que vous allez offrir à la mettre au délégué d'application, les deux solutions serait réellement utile à savoir 🙂
InformationsquelleAutor Kyle Goslan | 2014-12-20
Vous devez vous connecter pour publier un commentaire.
Viens de tester ton code et il semble que la raison de cette ligne est de retour
nil
est en fait à causename: "FONTNAME"
retourne nil. Donc, si vous définissez quename
attribut valide le nom de la police, le code doit s'exécuter sans erreur, même sinavigationController?.navigationItem.leftBarButtonItem
est explicitement définie à zéro.Mais peu importe, également, comme je l'ai vu à travers les essais, cette ligne ne vous donne pas le résultat que vous apparemment le souhaitez. Le premier
navigationController
option ne devrait pas être là depuis qu'il accède à votreUINavigationController
et non pas le point de vue actuel. Utilisez simplement leUIViewController
's proprenavigationItem
propriété pour accéder à sesleftBarButtonItem
directement, ex:Modifier: dans le commentaire que vous avez posté en vertu de cette réponse, il semble que si vous n'avez pas vraiment envie de définir la
leftBarButtonItem
mais labackBarButtonItem
parce que vous ne voulez pas mettre en œuvre une action personnalisée au-delà de revenir à la vue précédente contrôleur.Donc, dans ce précédent-vue-contrôleur (c'est à dire la vue avant de vous voulez montrer à votre custom bouton précédent article), vous pouvez configurer votre personnalisé bouton de retour sans une action comme:
leftBarButtonItem
. UtilisationbackBarButtonItem
. Je vais mettre à jour à expliquer, à sec...Si vous avez besoin de changer le style de police entièrement à travers vous app (aka. chaque bouton de navigation), la méthode préférée consiste à utiliser
UIBarButtonItem.appearance()
proxy.Échantillon extrait de code devrait ressembler à ceci:
SWIFT 3.0+
Il est sage de mettre ce bout de code quelque part au début de votre
AppDelegate.swift
fichier car de police stylisation doit se produire chaque fois que l'application est lancée. Aussi, vous êtes sûr de mettre ce code dans tout autre lieu (eg.Presenter
classe) où vous faites votre INTERFACE utilisateur de la stylisation et de personnalisation. Dès que ce code est exécuté, tous vos BarButtons sera personnalisé par la suite.MAIS comme un véritable Swift , vous devez d'abord éventuellement déballer votre police et, éventuellement, de secours, de la police du système si elle n'est pas trouvée ou n'importe quelle autre problème possible surviennent pendant le chargement de polices.
L'exemple du monde réel
Dans une vraie application vous aurait généralement besoin de personnaliser à la fois
UINavigationBar
etUIBarButton
style de police (à l'exception de tous les autres paramètres) afin de les rendre visuellement cohérent.Ici est à portée de main
stylizeNavigationFontOfMyAmazingApp
fonction que vous pouvez utiliser:}
Avantages de l'utilisation de
appearance()
proxyUIBarButtonItem
dansvotre app/projet.
appearance()
procurations de plusieurs classes pour vraiment style visuel uniqueUIBarButtonItem
.De référence
Apple Docs sur
appearance
protocole.Si vous souhaitez appliquer cette modification à tous de votre demande, vous pouvez utiliser le code ci-dessous:
Swift 4
J'ai ajouté ces lignes à
AppDelegate.swift
dansapplication
fonction :Swift 3
for: .selected
ainsi, ou le bouton affichera dans la police d'origine, tout presséfor: .highlighted
de garder la même police lors de contact vers le bas.Lorsque vous êtes sûr que vous avez déjà mis un
UIBarButtonItem
que vous pouvez faire:De changer par exemple la couleur, vous pouvez effectuer les opérations suivantes:
Lorsque vous n'avez pas mis dans votre scénario, vous pouvez le faire:
De modification de la police, procédez de la manière suivante:
Je devrais peut-être mentionner que vous ne devez pas utiliser l'auto.
navigationController
parce que lors de la configuration de la navigationController des boutons qu'ils ne sont pas affichés sur l'écran grâce à tous les boutons sur l'écran et a été définie dans la table de montage séquentiel doivent êtreself.navigationItem
...SWIFT 3