mise en œuvre backBarButtonItem est pour le contrôleur super vue qui utilise pushViewController: subViewController.
Par exemple, si vous avez poussé un contrôleur de vue pour son contrôleur super vue Déconnexion:
[self.navigationController pushViewController:subViewController animated:YES];
Ensuite, vous devriez avez mis en place backBarButtonItem dans la super vue, qui est vue Déconnexion, pas dans le subViewController poussé.
Ainsi, pour mettre en œuvre backBarButtonItem, vous le faites en super vue Déconnexion, comme:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:logoutViewTitle style:UIBarButtonItemStyleBordered target:nil action:nil];
Vous pouvez le faire - (void) viewDidLoad pour une utilisation statique, ou - (void) viewWillAppear :(BOOL) animé pour une utilisation dynamique, pour définir le titre sans allouer et initialiser.
Un conseil supplémentaire: Dans le constructeur d'interface, il y a un champ de saisie pour le titre backBarButtonItem. Mais si vous n'avez pas entré, vous devez allouer et initialiser le backBarButton avec le titre dans les fichiers .m, comme le code ci-dessus. Si vous avez entré le titre pour une utilisation statique, je crois que vous pouvez le changer en utilisant simplement:
[self.navigationItem.backBarButtonItem setTitle:logoutViewTitle];
espère que cela a aidé.
J'ai ajouté le code sur la méthode viewDidLoad du contrôleur précédent et il a échoué. Je me suis assuré de remplacer nav_delegate.navigationController par self. Merci quand même. –
Également utilisé backBarButtonItem –
Je ne suis pas sûr de ce que vous êtes en train de coder, mais peut-être un contrôleur de vue modale lui conviendrait mieux. Quand je pense à "Annuler", je pense aux contrôleurs de vue modale au lieu des contrôleurs de navigation. –