comment désactiver un élément de barre de navigation dans iOS
j'ai créé un contrôleur de navigation. Dans la deuxième vue (qui est poussée), j'ai un appel de webservice et je place une vue de superposition et le paramètre
self.view.userInteractionEnabled = NO ;
une fois l'appel de service web terminé, je retourne à
self.view.userInteractionEnabled = YES ;
quand je fais cela, tous les autres boutons sauf ceux de la barre de navigation sont désactivés. Comment désactiver ces deux éléments du bouton de la barre de navigation ? (un bouton semblable au bouton de retour, qui apparaît à premier contrôleur de vue et un autre bouton qui donne des informations sur l'aide).
j'ai essayé d'utiliser self.navigationItem.backBarButtonItem.enabled = NO
. Mais je peux quand même appuyer sur le bouton et naviguer jusqu'au premier écran. Comment puis-je désactiver ces deux boutons ?
11 réponses
Essayez ceci
Recommandé
self.navigationItem.leftBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.enabled = NO;
ou tout simplement désactivé par
sur le Bord de cas
self.view.window.userInteractionEnabled = NO;
mise à Jour: Récemment, Apple n'autorise pas le bouton arrière à activer / désactiver. Au lieu de cela nous pouvons le cacher.
self.navigationItem.hidesBackButton = YES;
self.navigationItem.rightBarButtonItem?.enabled = true
cet extrait va désactiver le bouton.
juste désactiver votre UINavigationController
interaction avec la barre de navigation:
self.navigationController.navigationBar.userInteractionEnabled = NO;
self.navigationController.view.userInteractionEnabled = NO;
Et l'activer quand vous en auriez besoin:
self.navigationController.navigationBar.userInteractionEnabled = YES;
self.navigationController.view.userInteractionEnabled = YES;
dernière Swift: pour masquer le bouton Précédent, vous devez utiliser:
self.navigationItem.setHidesBackButton(true, animated: false)
Note: cela peut déclencher un bug dans la barre de navigation qui peut faire apparaître un artefact à la place d'un bouton Back caché lors de la transition vers une vue qui n'a pas de bouton back (ou qui a un leftButton à sa place). L'artefact qui apparaît est soit des ellipses"..."ou le titre du viewController précédent sur la pile. Je crois que ce bug être lié au bug documenté dans apple échantillon projet de code "CustomizingUINavigationBar", CustomBackButtonViewController.m
j'ai résolu cela en ajoutant simplement une propriété à mon viewcontroller:
@property (nonatomic, strong) IBOutlet UIBarButtonItem * RightButton;
self.RightButton.enabled=true;
si vous voulez désactiver un élément de barre de navigation ou si vous voulez désactiver trou UINavigationBar c.-à-d. tous les éléments présents sur la barre de navigation, Utilisez sous les lignes de code;
// if you want disable
self.navigationController?.navigationBar.isUserInteractionEnabled = false
// if you want enable again
self.navigationController?.navigationBar.isUserInteractionEnabled = true
Profiter...!
pour iOS 10.3, swift 3
self.navigationItem.drightbarbuttonitem?.isEnabled = false.
essayez ceci
UIApplication.sharedApplication().beginIgnoringInteractionEvents()
ceci empêchera l'utilisateur d'interagir avec l'application et après appel de service écrire ceci
UIApplication.sharedApplication ().endIgnoringInteractionEvents ()
bien sûr que cela aidera.
solution sur une ligne
self.navigationController?.view.isUserInteractionEnabled = false
var menuBtn = new UIButton(UIButtonType.Custom);
menuBtn.Frame = new CGRect(x: 0.0, y: 0.0, width: 20, height: 20);
menuBtn.SetImage(new UIImage("filter"), UIControlState.Normal);
menuBtn.Alpha = 0,05 f;//pour définir l'Alpha
menuBtn.Enabled = false;