162 votes

Barre de navigation afficher/masquer

J'ai une application avec une barre de navigation composée de 2 boutons de barre. Je voudrais masquer et afficher cette barre de navigation lorsque l'utilisateur double-clique sur l'écran.

Initialement, la barre de navigation doit être masquée. Lorsqu'un utilisateur double-clique sur l'écran, la barre de navigation doit apparaître avec une animation, comme ce qui peut être vu dans la galerie de photos de l'iPhone.

Comment puis-je faire quelque chose comme ça ? Les suggestions sont toujours appréciées.

7voto

Jayprakash Dubey Points 1194

Pour masquer la barre de navigation :

[self.navigationController setNavigationBarHidden:YES animated:YES];

Pour afficher la barre de navigation :

[self.navigationController setNavigationBarHidden:NO animated:YES];

0 votes

Dans iOS 7, l'auto-complétion favorise en réalité cette solution plutôt que celle qui a reçu le plus de votes.

5voto

Avijit Nagare Points 1514

Une façon pourrait être de décocher la visibilité de la barre "Affiche la barre de navigation" dans l'inspecteur d'attributs. J'espère que cela aidera quelqu'un.

entrez la description de l'image ici

2voto

iOS Points 1497

Dans Swift 4.2 et Xcode 10

self.navigationController?.isNavigationBarHidden = true  //Cacher
self.navigationController?.isNavigationBarHidden = false  //Afficher

Si vous ne souhaitez pas afficher la barre de navigation uniquement dans le 1er VC, mais que vous souhaitez l'afficher à partir du 2ème VC

Dans votre 1er VC, écrivez ce code.

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true  //Cacher
}

override func viewWillDisappear(_ animated: Bool) {
    self.navigationController?.isNavigationBarHidden = false  //Afficher
}

2voto

Si vous voulez détecter l'état de la barre de navigation pour savoir si elle est masquée/affichée. Vous pouvez simplement utiliser le code suivant pour le détecter -

if self.navigationController?.isNavigationBarHidden{
    print("Afficher la barre de navigation")
} else {
    print("Masquer la barre de navigation")
}

0voto

burrows111 Points 462

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X