Ce n'est pas quelque chose qui peut s'intégrer dans quelques lignes de code, mais c'est une approche qui pourrait fonctionner pour vous.
Pour masquer la barre de navigation:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Pour le montrer:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
La documentation de cette méthode est disponible ici .
Pour écouter un «double-clic» ou un double-clic, sous UIView
- classez et créez une instance de cette sous-classe comme view
propriété de votre contrôleur de vue .
Dans la sous-classe de vue, remplacez sa -touchesEnded:withEvent:
méthode et comptez le nombre de touches que vous obtenez dans un laps de temps, en mesurant le temps entre deux pressions consécutives, peut-être avec CACurrentMediaTime()
. Ou testez le résultat à partir de [touch tapCount]
.
Si vous obtenez deux taps, votre vue sous-classée émet un problème NSNotification
que votre contrôleur de vue s'est enregistré pour écouter.
Lorsque votre contrôleur de vue entend la notification, il déclenche un sélecteur qui masque ou affiche la barre de navigation à l'aide du code susmentionné, en fonction de l'état visible actuel de la barre de navigation, accessible en lisant la isHidden
propriété de la barre de navigation .
ÉDITER
La partie de ma réponse concernant la gestion des événements tap est probablement utile avant iOS 3.1. La UIGestureRecognizer
classe est probablement une meilleure approche pour gérer les doubles taps, de nos jours.
MODIFIER 2
La façon Swift de masquer la barre de navigation est:
navigationController?.setNavigationBarHidden(true, animated: true)
Pour le montrer:
navigationController?.setNavigationBarHidden(false, animated: true)