J'avais un contrôleur de vue parent avec un titre très long. Cela a entraîné le texte du bouton de retour dans le titre du contrôleur de vue enfant.
Après avoir essayé un tas de solutions différentes, voici ce que j'ai fini par faire (en développant l'approche @ john.k.doe):
Utilisation de Xcode 7.2, Swift 2
- Dans le Storyboard, ajoutez un
Navigation Item
à la scène Parent View Controller (pas le VC enfant)
- Sur le
Attributes Inspector
de votre nouveau Navigation Item
, tapez un space
caractère dans le Back Button
champ. Plus d'informations à ce sujet plus tard.
- Dans le contrôleur de vue parent , ajoutez le code suivant:
fragment:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.destinationViewController {
case is ChildViewController:
navigationItem.backBarButtonItem?.title = ""
default:
navigationItem.backBarButtonItem?.title = "Full Parent Title"
}
}
Explication:
Le type de bouton de retour appartient au contrôleur de vue parent. Le Navigation Item
vous donne une poignée sur le bouton de retour, vous pouvez donc définir le titre dans le code ou dans le Storyboard.
Remarque:
Si vous laissez le Navigation Item
Back Button
texte comme chaîne vide par défaut, le titre du bouton de retour deviendra "Retour".
D'autres approches fonctionnent, pourquoi utiliser celle-ci?:
Bien qu'il soit possible de remplacer le titre du bouton de retour sur le contrôleur de vue enfant, il était difficile d'obtenir une poignée jusqu'à ce qu'il ait déjà clignoté brièvement à l'écran.
Certaines approches construisent un nouveau bouton de retour et remplacent celui existant. Je suis sûr que cela fonctionne, et probablement nécessaire dans certains cas d'utilisation. Mais je préfère tirer parti des API existantes lorsque cela est possible.
La modification du title
contrôleur de vue parent est la solution la plus rapide pour certaines situations. Cependant, cela change le titre parent, vous devez donc gérer l'état. Les choses deviennent également désordonnées Tab Bar Controller
car les changements de titre provoquent des effets secondaires avec les Tab Bar Item
titres.