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?
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
}
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.
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
}
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))