J'ai ajouté un contrôle de navigation pour basculer entre les vues dans mon application. Mais certaines vues ne devraient pas avoir de bouton «Retour» (le titre précédent). Des idées sur la façon de masquer le bouton de retour?
J'ai ajouté un contrôle de navigation pour basculer entre les vues dans mon application. Mais certaines vues ne devraient pas avoir de bouton «Retour» (le titre précédent). Des idées sur la façon de masquer le bouton de retour?
Réponses:
Objectif c:
self.navigationItem.hidesBackButton = YES;
Rapide:
navigationItem.hidesBackButton = true
self.navigationItem.leftBarButtonItem = nil;
. Si vous avez défini explicitement leftbarbuttonitem, vous pouvez l'utiliser self.navigationItem.leftBarButtonItem = nil;
. self.navigationItem.hidesBackButton = YES;
La meilleure façon est de les combiner, donc cela masquera le bouton retour même si vous le configurez manuellement:
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;
cacher le bouton de retour avec le code ci-dessous ...
[self.navigationItem setHidesBackButton:YES animated:YES];
ou
[self.navigationItem setHidesBackButton:YES];
Aussi, si vous avez personnalisé, UINavigationBar
essayez le code ci-dessous
self.navigationItem.leftBarButtonItem = nil;
Dans Swift :
Ajoutez ceci au contrôleur
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated: false)
}
Utilisez le code:
self.navigationItem.backBarButtonItem=nil;
N'oubliez pas que vous devez l'appeler sur l'objet qui a le contrôleur de navigation. Par exemple, si vous avez un contrôleur nav poussant sur un contrôleur de barre d'onglets avec un RootViewController, appeler self.navigationItem.hidesBackButton = YES
le RootViewController ne fera rien. Il faudrait en fait appelerself.tabBarController.navigationItem.hidesBackButton = YES
N'oubliez pas que nous avons maintenant le geste de glisser vers l'arrière. Vous souhaiterez probablement supprimer cela également. N'oubliez pas de le réactiver si nécessaire.
if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
self.navigationItem.hidesBackButton = YES;
}
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
Ajoutez ce code dans votre contrôleur de vue
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
Pour moi, rien de ce qui précède ne semblait fonctionner, cela n'avait aucun effet visuel. J'utilise des storyboards avec une vue qui est "intégrée" dans un contrôleur de navigation.
Ensuite, au niveau du code, j'ajoute mes éléments menuItems et pour une raison quelconque, le "backButton" est visible lors du débogage visuel de la hiérarchie des vues, et mon icône menuItem s'affiche sous le "bouton retour" invisible.
J'ai essayé les réglages, comme suggéré dans les différentes méthodes de crochet et cela n'a eu aucun effet. Ensuite, j'ai essayé une approche plus brutale et j'ai réitéré la sous-vue, qui n'a également eu aucun effet.
J'ai inspecté la taille de mes icônes et j'ai semblé aller bien. Après avoir fait référence à la Apple Human Interface Guideline, j'ai confirmé que mes icônes étaient correctes. (1 pixel plus petit dans mon cas 24px 48px 72px).
La partie la plus étrange est alors la solution réelle ...
Lorsque vous ajoutez l'élément BarButton, donnez-lui un titre avec au moins un caractère , dans mon cas, un caractère espace.
Espère que cela aide quelqu'un.
//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX
style:UIBarButtonItemStylePlain
target:self
action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];
[self.navigationItem setLeftBarButtonItem:leftButtonItem];
essaye celui-là -
self.navigationController?.navigationItem.hidesBackButton = true
Dans c # ou Xamarin.ios, this.NavigationItem.HidesBackButton = true;
navigationItem.leftBarButtonItem = nil
navigationItem.hidesBackButton = true
si vous utilisez ce bloc de code dans didLoad ou loadView a fonctionné mais n'a pas fonctionné parfaitement. Si vous regardez attentivement, vous pouvez voir que le bouton de retour se cache lorsque votre vue se charge.
Quelle est la solution parfaite?
Ajoutez le composant BarButtonItem de componentView (Commande + Maj + L) à votre barre de navigation viewControllers cible.
Sélectionnez BarButtonItem set Title = "" dans le panneau de droite