60 votes

Comment changer le nom du bouton retour de UINavigationController ?

J'ai un UIViewController et je navigue de mon premier contrôleur de vue vers le deuxième contrôleur de vue et je veux changer le nom du bouton affiché sur la page d'accueil. navigationcontroller pour retourner sur ....

SecondViewController *secondController = [[SecondViewController alloc]
                                              initWithNibName:nil
                                              bundle:NULL]; 
[self.navigationController pushViewController:secondController  animated:YES];

maintenant dans la deuxième viewcontroller Je veux changer le nom du bouton dans la section navigationController .

185voto

0x7fffffff Points 40133

Si vous souhaitez effectuer cette opération de manière programmatique, vous pouvez procéder comme suit :

Objectif-C

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"Custom"
                                                             style:UIBarButtonItemStyleBordered
                                                            target:nil
                                                            action:nil];

[self.navigationItem setBackBarButtonItem:backItem];

Swift

let backItem = UIBarButtonItem(title: "Custom", style: .Bordered, target: nil, action: nil)
navigationItem.backBarButtonItem = backItem

Toutefois, si vous préférez utiliser Interface Builder, il vous suffit de sélectionner l'UINavigationItem pour lequel vous souhaitez définir le bouton de retour, puis de naviguer dans l'inspecteur d'attributs pour modifier le titre du bouton de retour.

enter image description here

NOTE : Il est important de se rappeler que vous devez configurer ceci sur le contrôleur de vue auquel vous reviendrez en appuyant sur le bouton retour, et non sur le contrôleur de vue actuellement visible.

1 votes

Shady Il est toujours là. Sélectionnez simplement votre UINavigationItem et vous le verrez dans l'onglet "Attributes Inspector" dans Interface Builder.

11 votes

Merci pour ça. Surtout pour la note à la fin.

0 votes

Vous pouvez combiner les deux approches, programmatique et avec des storyboards. Ajoutez un titre de backButton fictif (comme dans l'image montrée) à l'image précédente. viewController dans la hiérarchie (pour qu'un bouton de retour existe) et écrire self.navigationItem.backBarButtonItem.title = @"..."; pour définir le titre de fond pour le prochain viewController

42voto

Roger Points 608

Il existe un moyen simple de le faire dans Interface Builder ou Storyboarding. Dans le contrôleur de vue parent, il suffit de donner à l'attribut "Back Button" de l'élément de navigation le titre que vous souhaitez. Voici un exemple :

Set Back Button Title of child view controller form parent view controller

La vue de la taverne de Villian aura "Back" comme titre du bouton de retour, comme nous venons de le définir dans l'inspecteur des attributs du contrôleur de navigation du parent (Best Bars).

0 votes

Vous devrez peut-être ajouter un élément de navigation à votre contrôleur de vue sur le storyboard s'il n'y est pas déjà. Pour ce faire, sélectionnez UINavigationItem dans la bibliothèque d'objets et faites-le glisser sur votre contrôleur de vue sur le storyboard.

35voto

Tendulkar Points 4299

En vue de l'apparition, écrivez ceci

self.navigationItem.title = @"List View";

Et dans ViewWilldisapper, écrivez ceci .

self.navigationItem.title = @"Back";

Cela fonctionne sans story-board.

2 votes

De cette façon, vous verrez le titre changer réellement avant la nouvelle vue (surtout si vous avez une animation). Si vous le faites avec viewDidDisappear, vous verrez le bouton changer réellement. La solution de NSPostWhenIdle est meilleure. Source originale : blog.evandavey.com/2008/12/

15 votes

Cela ne devrait pas être la réponse acceptée. La réponse de 0x7fffffff est la méthode supportée pour faire cela.

2 votes

Cela ne fonctionne plus. C'est aussi très peu pratique. La réponse de l'utilisateur716216 [ [stackoverflow.com/a/9871741/1195661]](http://stackoverflow.com/a/9871741/1195661]) devrait être le bon.

1voto

javifernandezr Points 11

Il est très important que dans le contrôleur de vue, l'option "Métriques simulées" ne soit pas sélectionnée comme "inférée".

J'ai essayé avec "Aucun" et tout va bien !

0voto

Luis Points 71

Si vous utilisez Storyboard, il y a un moyen facile de le faire (cela a bien fonctionné pour moi).

  • Allez à votre storyboard
  • Sélectionnez le UIViewController dont vous souhaitez modifier le texte du bouton retour.
  • Cliquez sur l'élément UINavigationItem en haut de votre UIViewController. (celui avec le titre)
  • Dans le panneau de droite, sélectionnez l'inspecteur d'attributs (la quatrième icône).
  • Vous pouvez maintenant définir les textes du titre, de l'invite et du bouton de retour.

enter image description here

Source : http://pinkstone.co.uk/how-to-change-the-back-button-text-on-a-uinavigationcontroller-in-your-storyboard/

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