Comment puis-je afficher/masquer le bouton droit dans la Barre de Navigation
J'ai besoin de cacher le bouton droit dans la Barre de Navigation, puis l'afficher une fois que l'utilisateur sélectionne un certain nombre d'options.
Malheureusement, le suivant ne fonctionne pas:
NO GOOD: self.navigationItem.rightBarButtonItem.hidden = YES; //FOO CODE
Est-il un moyen?
InformationsquelleAutor Lauren Quantrell | 2011-04-07
Vous devez vous connecter pour publier un commentaire.
Masquer le bouton de réglage de la référence à néant, cependant, si vous souhaitez les restaurer par la suite, vous aurez besoin de s'accrocher à une copie de celui-ci de sorte que vous pouvez réassigner.
Personnellement, dans mes applications, je fais mon nav boutons en @propriétés, de sorte que je peux corbeille & recréer à volonté, donc quelque chose comme:
Pour Swift 3
De référence définie à zéro:
Également être sûr de faire appel de cette dans le contrôleur affiché actuellement par le navController, pas pour le navController lui-même.
Spectacle:
Cacher:
Vous pouvez même animer son affichage/masquage des
Voici Matt solution de mise à jour pour les story-boards & ARC. Rappelez-vous, IBOutlets sont __faibles par défaut, donc vous avez besoin de changer que de fort pour elle de ne pas être sorti trop tôt.
De crédit doit aller à l'apprenant pour répondre à cette question dont la réponse est à partir de cette question:
masquer et afficher à gauche de la barre de navigation bouton sur la demande dans iOS 7
C'est la réponse, qui est beaucoup plus simple.
Alors que vous venez de référence de la méthode où vous en avez besoin, comme dans un
(IBAction)
comme suit:J'ai essayé toutes les autres méthodes et aucune n'a fonctionné, même le référencement de mon bouton comme un
@property (...) UIBarButtonItem....
et rien n'a fonctionné jusqu'à ce que j'ai trouvé cette.SWIFT 2.2
Dans swift 2.2 soi.navigationItem ne fonctionne pas. Au lieu de créer une prise de courant de la NavigationItem (j'ai nommé ci-dessous "nav") et de l'utiliser.
Également la suggestion suivante n'a pas fonctionné pour moi, en utilisant Xcode 7.3 et swift 2.2
J'ai donc utilisé l'idée de @Matt J ci-dessus comme suit (j'ai 2 éléments sur la gauche):
Créer des débouchés pour les éléments dans la barre de navigation et des variables pour stocker
Enregistrer les éléments dans le viewDidLoad()
Pour MASQUER les mettre à néant
Pour leur MONTRER
Spectacle:
Cacher:
Ma solution:
Swift 2:
Cacher:
Spectacle:
Dans swift 4 je a une astuce pour afficher /masquer le bouton droit ou gauche:
Étape 1: Créer un IBOutlet bouton en-vue-contrôleur:
Étape 2: Créer Masquer le bouton de fonction:
Étape 3: Créer le bouton Afficher de la fonction:
Étape 4: il suffit d'appeler les fonctions que vous souhaitez, utilisez
hideNavigationButton()
à cacher, etshowNavigationButton()
pour afficher le bouton.Ce qui concerne les!
Si vous avez un seul bouton de la barre d'élément dans le côté droit, vous pouvez l'utiliser,
Supposons que si vous avez plusieurs bouton de la barre dans le côté droit, par exemple, supposons que vous avez deux bouton de la barre d'éléments(bouton de recherche et de filtre bouton) dans le côté droit de votre élément de la navigation. Maintenant le bon bouton de la barre d'éléments sont
et vous avez à cacher seul bouton de recherche, vous pouvez utiliser le souhaitez,
Maintenant ce qui se passe, c'est que vous pouvez masquer complètement le bouton de recherche de l'élément de navigation et l'élément de filtre vient à la place de l'élément de recherche
Spectacle:
Cacher:
xxxButton
(veuillez ouvrir l'Assistant de montage, de Contrôle+Glisser xxx bouton pour YourViewController classe outlet "xxxButton").
ou vous pouvez utiliser quelque chose comme
let xxxButton = navigationBar.buttons[1]
Masquer
xxxButton.customView = UIView()
ou
navigationItem.rightBarButtonItems?.remove(at: (navigationItem.rightBarButtonItems?.index(of:xxxButton)!)!)
Montrer
xxxButton.customView = nil
ou
navigationItem.rightBarButtonItems?.insert(newElement: xxxButton, at:SOME_INDEX)
Espère utile.
À cacher:
Définir le titre de vider d'abord et après swlwction juste de nouveau.
Vous pouvez utiliser le code ci-dessous:
Pour swift 5 à cacher rightBarButtonItem