Existe-t-il un moyen de masquer ou d'afficher un UIBarButtonItem?iPad - Afficher/Masquer UIBarButton
Répondre
Utilisez-le pour masquer l'élément de la barre.
self.navigationItem.rightBarButtonItem = nil;
En fait, UIBarButtonItem ne répond pas à .hidden. Ce n'est pas une sous-classe de UIButton.
Voici un exemple rapide de la façon dont vous pouvez commuter trois boutons: un bouton gauche, un bouton central et un bouton droit.
// Ainsi, au bon endroit
IBOutlet UIToolbar *bottomToolbar;
IBOutlet UIBarButtonItem *leftButton;
IBOutlet UIBarButtonItem *flexerSpace;
IBOutlet UIBarButtonItem *middleButton;
IBOutlet UIBarButtonItem *rightButton;
// Alors ce au bon endroit
@property (retain, nonatomic) IBOutlet UIToolbar *bottomToolbar;
@property (retain, nonatomic) IBOutlet UIBarButtonItem *leftButton;
@property (retain, nonatomic) IBOutlet UIBarButtonItem *flexerSpace;
@property (retain, nonatomic) IBOutlet UIBarButtonItem *middleButton;
@property (retain, nonatomic) IBOutlet UIBarButtonItem *rightButton;
// Puis au bon endroit
@synthesize bottomToolbar;
@synthesize leftButton;
@synthesize flexerSpace;
@synthesize middleButton;
@synthesize rightButton;
puis rechargent votre classe dans IB ou Xcode4 IB dans votre plume
// puis dans votre
view_switcher/méthodes de régulation
-(IBAction)switchToLeft:(id)sender {
NSArray *newButtonArray = [NSArray arrayWithObjects: middleButton, flexerSpace, rightButton, nil];
[bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it
}
-(IBAction)switchToMiddle:(id)sender {
NSArray *newButtonArray = [NSArray arrayWithObjects: leftButton, flexerSpace, rightButton, nil];
[bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it
}
-(IBAction)switchToRight:(id)sender {
NSArray *newButtonArray = [NSArray arrayWithObjects: leftButton, flexerSpace, middleButton, nil];
[bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it
}
puis connectez les boutons et ajoutez votre changement de vue, cela devrait le faire ...
En supposant que vous pouvez remplir certaines parties
Voici ma sous-classe UIBarButtonItem pour exposer une méthode setHidden. Je l'utilise quand j'ai un bouton "optionnel" sur mes barres. Fonctionne pour les boutons textuels ou image.
class AltoUIBarButtonItem: UIBarButtonItem {
var originalImage : UIImage?
var originalTitle : String?
override func awakeFromNib() {
originalTitle = self.title
originalImage = self.image
}
func setHidden(_ hidden: Bool)
{
if hidden
{
if originalImage != nil { self.image = nil}
if originalTitle != nil { self.title = ""}
self.isEnabled = false
}
else
{
if originalImage != nil { self.image = originalImage}
if originalTitle != nil { self.title = originalTitle}
self.isEnabled = true
}
}
func setOriginalTitle(_ originalTitle: String?)
{
self.originalTitle = originalTitle
}
}
Nous pouvons cacher élément de navigation en définissant sa propriété à zéro et chaque fois que nous voulons montrer que nous pouvons alors il suffit d'écrire dans un état afin que nous puissions afficher le bouton. – AppAspect