Comment supprimer le texte du bouton de retour.
Bouton de retour actuel:
<Retour
Bouton de retour souhaité:
<AnythingElse
Aucun de ceux-ci n'a fonctionné:
self.navigationItem.backBarButtonItem?.title = "Back"
self.backItem?.title = ""
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationItem.backBarButtonItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title="Back"
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title
ios
objective-c
swift
Onichan
la source
la source
title
modifications du titre , pas seulement le bouton de retour.Vous pouvez le faire à partir du générateur d'interface comme suit:
cliquez sur l'élément de navigation du contrôleur de vue précédent
à partir de l'inspecteur d'attributs, définissez le texte du bouton de retour sur ce que vous voulez. C'est tout!!
la source
Le texte du bouton Retour est tiré du titre de l'élément de navigation du contrôleur de vue parent. Ainsi, tout ce que vous définissez sur le titre de l'élément de navigation du contrôleur de vue précédent sera affiché sur le texte du bouton de retour du contrôleur de vue actuel. Vous pouvez simplement mettre "" comme titre d'élément de navigation dans la méthode viewWillAppear du contrôleur de vue parent.
Une autre façon est de mettre
dans la méthode viewWillAppear du contrôleur de vue actuel. Celui-ci causera un autre problème si la pile de navigation est trop imbriquée.
la source
prepareForSegue
, ce qui est. un peu plus propre car vous ne modifiez pas le nouveau viewController après son chargement.Vous pouvez mettre ces 3 lignes de code dans le titre que
ViewController
vous souhaitez modifier le bouton de retour.Dans votre
override func viewDidLoad() {}
.la source
Si vous utilisez le fichier xib pour le contrôleur de vue, faites-le dans votre classe de contrôleur de vue.
Le résultat sera:
la source
Je ne sais pas où vous avez utilisé vos méthodes que vous posez sur votre question mais je pourrais obtenir le résultat souhaité si j'utilise, sur ma
ViewController
classe (dans laquelle je veux changer le bouton retour), sur laviewDidLoad()
fonction, la ligne suivante:Le résultat sera:
Avant
Après
la source
navigationController.navigationBar.topItem?.title = ""
plutôt pour éviter de mettre celaviewDidAppear
Le bouton de retour appartient au contrôleur de vue précédent, pas celui actuellement présenté à l'écran. Pour modifier le bouton de retour, vous devez le mettre à jour avant de pousser, ajoutez viewdidload:
Swift 4:
la source
Vous pouvez simplement modifier le NavigationItem dans le storyboard
Dans le bouton Précédent, ajoutez un espace et appuyez sur Entrée.
la source
Swift 4 - Configurez le bouton de retour avant d'appuyer sur les contrôleurs de vue
la source
Cela devrait fonctionner:
Bien qu'il ne soit pas recommandé car cela remplace en fait le backButton et il a également supprimé la flèche arrière et le geste de balayage.
la source
Swift 4.2
Si vous souhaitez modifier le texte de l'élément du bouton de retour de la barre de navigation, placez-le dans
viewDidLoad
le contrôleur AVANT celui où le bouton de retour s'affiche, PAS sur le contrôleur de vue où le bouton de retour est visible.Si vous souhaitez modifier le texte du titre de la barre de navigation actuelle, utilisez le code ci-dessous (notez que cela devient le texte arrière par défaut pour la vue SUIVANTE poussée sur le contrôleur de navigation, mais ce texte arrière par défaut peut être remplacé par le code ci-dessus)
la source
Il y a deux façons.
Dans le précédent ViewController.viewDidLoad ()
Dans le CurrentViewController.viewDidAppear ()
Raison: le
backButton
vient denavigationBar.backItem.backBarButtonItem
, donc la première façon est évidente. Dans currentViewController.viewDidLoad (), nous ne pouvons pas obtenir la référence debackItem
, car dans viewDidAppear (), lenavigationBar
poussénavigationView
sur sonstack
.so nous pouvons apporter des modifications aubackItem
dans currentViewController. viewDidAppear ()Pour plus de détails, vous pouvez voir le document: UINavigationBar
la source
Dans la
viewDidLoad
méthode du contrôleur présentateur, ajoutez:la source
bien que ces réponses résolvent le problème, mais cela pourrait être utile
la source
Swift 4
Alors que le dicton précédent pour se préparer à la séquence est correct et que son vrai bouton retour appartient au VC précédent, il suffit d'ajouter un tas de code inutile.
La meilleure chose à faire est de définir le titre du VC actuel dans viewDidLoad et cela définira automatiquement le titre du bouton de retour correctement sur le VC suivant. Cette ligne a fonctionné pour moi
la source
Cela fonctionne pour Swift 5 :
Veuillez noter qu'il sera efficace pour le prochain contrôleur de vue poussé et non pour le contrôleur actuel, c'est pourquoi c'est très déroutant!
Vérifiez également le storyboard et sélectionnez l'élément de navigation du contrôleur de vue précédent , puis tapez quelque chose dans le bouton Retour (Inspecteur).
la source
Essayez ceci ... cela fonctionnera ....
Le code ci-dessus masquera le texte et affichera uniquement la flèche de retour sur la barre de navigation.
la source
Réglez
self.title = ""
avantself.navigationController?.pushViewController(vc, animated: true)
.la source
J'espère que ça aide!! #swift 3
la source
Si vous poussez un contrôleur de vue à partir de la page du contrôleur de vue de page, vous ne pouvez pas mettre à jour le titre du bouton de retour du contrôleur de navigation. Pour résoudre ce problème, créez un délégué vers votre contrôleur de vue parent (vous pouvez également être en mesure de parcourir la hiérarchie du contrôleur de vue vers le parent).
De plus, les boutons Retour ont une limite de caractères. Si vous dépassez cette limite de caractères, le système reviendra par défaut à "Retour". Il ne sera pas tronqué pour vous. Par exemple:
la source
Swift 4
Dans mon cas, la solution consistait à effacer l'élément de navigation du contrôleur Master View avant de passer au contrôleur Child View. Et définissez-le à nouveau s'il est affiché
MasterController
Et voici comment je pousse un UIViewController et efface l'élément du bouton de la barre arrière dans le contrôleur enfant:
MasterController
la source
pour Swift 4.2
la source
GOTCHA: Si vous rencontrez des problèmes avec l'une des suggestions à plusieurs étoiles, assurez-vous que vous enregistrez votre
UITableViewCell
s dansviewDidLoad()
, pas deinit()
la source
Solution vérifiée et fonctionne dans Swift 5
Ci-dessous, je mets quelques solutions pour différents cas:
1. Supprimer le texte du bouton de retour
La meilleure solution pour supprimer le texte du bouton précédent est d'ajouter dans viewDidLoad ():
2. Définir son propre texte sur le bouton de retour
Si vous souhaitez définir votre propre titre, faites-le en définissant le titre de backButton:
3. Bouton de retour vide sur tous les VC
Si vous souhaitez créer un style commun dans toute l'application - pour avoir juste une flèche en arrière sans texte, créez un VC de base pour tous vos contrôleurs de vue:
La solution présentée ci-dessus vous permet de personnaliser le bouton de retour à l'avenir si vous souhaitez faire une exception plus tard, en ajoutant une variable supplémentaire et en la remplaçant dans ViewController spécifique, f.ex:
la source
rapide 4
il existe un moyen de modifier le texte dans backButton par programme à partir de la vue actuelleController:
la source