J'ai une application avec une barre de navigation qui permet d'accéder à un contrôleur d'affichage de l'écran de connexion, puis à un menu principal. Existe-t-il un moyen de supprimer le bouton de retour du menu principal pour empêcher l'utilisateur de revenir à l'écran de connexion?
Merci!
EDIT: Utiliser Xcode 4.3 et effectuer tout le travail de programmation par programme.
Tu peux faire:
[self.navigationItem setHidesBackButton:YES];
Dans votre deuxième contrôleur de vue (celui dans lequel vous souhaitez masquer le bouton).
La réponse de Peters est correcte, bien que je pense que la meilleure question est de savoir pourquoi. Dans un schéma comme le vôtre où vous souhaitez connecter un utilisateur, au lieu d'utiliser un VC poussé, présentez un Modal VC et utilisez une méthode déléguée pour récupérer les informations sur l'utilisateur obtenues lors du processus de connexion. Je peux poster un exemple de code complet si vous en avez besoin, mais il semble que vous ayez réglé les détails de votre processus de connexion. Il suffit d'utiliser:
presentModalViewController
au lieu de:
pushViewController
De cette façon, vous n'avez pas à vous soucier de la pile de navigation et à faire quelque chose qui n'est pas vraiment conforme aux instructions de l'interface utilisateur.
Le code ci-dessus n'a pas fonctionné pour moi. Comme suggéré dans UINavigationItem setHidesBackButton: OUI n'empêchera pas le retour , Je devais utiliser:
[self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]]];
En rapide
self.navigationItem.hidesBackButton = true
Essayé dans Xcode7.3.1, Swift
self.navigationItem.setHidesBackButton(true, animated: true)
Il ne fait que masquer la flèche de retour et désactiver l'action de retour, mais je peux toujours voir le nom du contrôleur de vue précédent.
Pour ceux qui souhaitent également masquer le nom du contrôleur de vue précédent, essayez la réponse de Yoga fonctionne pour moi. En rapide
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView())
Essaye ça:
[self.navigationItem setHidesBackButton:YES];
Ou
[self.navigationItem setHidesBackButton:YES animated:YES];