8
votes

iPhone: NavigationController Navigation Barre de navigation Texte du bouton arrière

Lorsque j'appuie une nouvelle vue de mode sur une pile de contrôleur de navigation, le bouton "BACK" est le titre du contrôleur précédent.

Comment puis-je modifier le texte dans le bouton arrière pour "retour" au lieu du nom par défaut du dernier contrôleur?


1 commentaires

Sachez simplement que cela est froncé sur les directives d'interface d'iPhone d'Apple. (Bien que citoyablement nécessaire quand des titres courent longtemps.)


6 Réponses :


10
votes

Vous devez créer un bouton personnalisé sur le contrôleur de navigation. Mettez le code suivant dans la ViewDidloadload dans votre contrôleur de vue racine: xxx

En réglant la barre de navigation sur le contrôleur de vue racine, la vue poussée indique le dos approprié bouton.


0 commentaires

1
votes

Vous pouvez réellement définir le titre sur le titre de la page d'affichage du contrôleur de la vue principale du contrôleur d'affichage de la vue principale. Fondamentalement, chaque uiviewcontroller code> a un peu de talon uinavigentitem code> qui contient des métadonnées sur la manière dont cette vue doit être référencée à l'intérieur d'un uinavigationController code>. Par défaut, que les métadonnées redeviennent simplement à la uiviewcontroller code> elle-même.

Assumant 'Self' est le uiviewcontroller code> de la vue visible dans le uinavigationController Code>, SET: P>

self.navigationItem.title = @"My Custom Title"


1 commentaires

Cela fait non seulement seulement les boutons Titre "Mon titre personnalisé", mais il rend également la page précédente dans le titre de la pile de navigation "Mon titre personnalisé".



27
votes

C'est la bonne façon de faire un bouton arrière avec quelque chose d'autre que le précédent titre de pages xxx

c'est à ma compréhension que: xxx

fera le titre de la barre de navigation à la page précédente ce qui n'est pas ce que vous voulez.


0 commentaires

2
votes

Vous pouvez modifier le titre du contrôleur d'affichage actuel du contrôleur de navigation avant de pousser le nouveau contrôleur de vue:

self.title = @"Custom Title";

[self pushViewController: newViewController ...];

and in the navigation controller's delegate class

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

if([viewController class] == [OldViewController class]) {

viewController.title = @"Your previous title";

}

}


0 commentaires

13
votes

Je sais, la question est très ancienne, mais j'ai trouvé une belle solution.

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init];
barButton.title = @"back";
self.navigationController.navigationBar.topItem.backBarButtonItem = barButton;


0 commentaires

1
votes

Vous pouvez y parvenir en définissant le titre de bouton arrière dans la fonction "ViewWilldisappar" du contrôleur d'origine comme suit:

override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for this view
        self.navigationItem.title = "My Title"

}

override func viewWillDisappear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for back button in next view 
        self.navigationItem.title = "Back"
}


0 commentaires