web-dev-qa-db-fra.com

Comment masquer un élément de bouton de barre pour certains utilisateurs

J'ai un élément de bouton de barre de paramètres (défini comme élément de bouton de barre gauche). Je veux seulement l'afficher si l'utilisateur est connecté.

Je pensais pouvoir utiliser les éléments suivants pour les utilisateurs anonymes

navigationItem.leftBarButtonItem = nil

Mais alors comment pourrais-je le montrer dès qu'ils se connecteraient?

14
grabury

Vous pouvez stocker une copie du leftBarButtonItem dans une propriété strong et la mettre à jour après la connexion des utilisateurs.

var leftBarButtonItem : UIBarButtonItem!

Dans viewDidLoad:

self.leftBarButtonItem = UIBarButtonItem(title: "test", style:         UIBarButtonItem.Style.Plain, target: nil, action: nil)

En logique:

if loggedIn
{
    self.navigationItem.leftBarButtonItem = self.leftBarButtonItem
}
else
{
    self.navigationItem.leftBarButtonItem = nil
}
34
rakeshbs

Le meilleur moyen consiste simplement à personnaliser votre barre avec l’image. Définissez barbuttom.image = nil sur Masquer à nouveau pour attribuer l'image à afficher. Et n'oubliez pas de faire en sorte que le paramètre barre soit activé comme faux.

5
jeff ayan

J'ai plus que 2 menuitem et enlever/ajouter menuitem est un overhead. Cet extrait de code a fonctionné pour moi.

func showMenuItem(){

    menuItemQuit.customView?.isHidden = false
    menuItemQuit.plainView.isHidden = false
}

func hideMenuItem(){

    menuItemQuit.customView?.isHidden = true
    menuItemQuit.plainView.isHidden = true
}
2
Manikanta

si vous voulez masquer/afficher UIBarButtonItem: For Swift 3

Utilisé ci-dessous code simple:  

Déclaration: 

var doneButton = UIBarButtonItem()

Dans ViewDidLoad () ou ViewWillAppear () ou à l'endroit où vous souhaitez le masquer: [bouton de barre de masquage]

self.navigationItem.rightBarButtonItem = nil

où vous voulez montrer le bouton de la barre: [utiliser n'importe où dans votre code]

self.navigationItem.rightBarButtonItem = self.doneButton
        doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.dismissPicker))
1
Kiran jadhav