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)
Ce code vous aidera.
la source
Lisez d'abord la section dans le Guide de programmation du contrôleur de vue pour iOS sur `` Adopter une disposition plein écran pour les vues de navigation '' et la section sur la même chose pour les vues personnalisées. Si vous essayez de faire quelque chose comme Photos.app, vous utilisez probablement une vue de défilement. Notez le commentaire selon lequel les barres de navigation ajoutent automatiquement un contenu de défilement incrusté à votre vue de défilement pour tenir compte de la hauteur de la barre de navigation (et de la barre d'état), vous devez donc réinitialiser la propriété contentInset de votre vue de défilement à zéro (UIEdgeInsetsZero) juste après configuration de l'état initial de la barre de navigation et avant l'apparition de la vue.
Ensuite, si vous avez un seul clic qui fait basculer la barre de navigation et / ou la barre d'état pour afficher ou masquer, vous devez faire deux choses dans votre méthode de basculement. Le premier semble être d'enregistrer la propriété contentOffset de la vue de défilement avant de modifier la propriété masquée NavigationBar et de restaurer votre valeur enregistrée dans contentOffset juste après. Et deuxièmement, remettre à zéro la propriété contentInset à UIEdgeInsetsZero après avoir modifié la propriété navigationBarHidden. En outre, si vous basculez la barre d'état, vous devez modifier son état avant de modifier l'état de navigationBar.
la source
Dans Swift, essayez ceci,
ou
la source
Pour masquer la barre de navigation:
Pour afficher la barre de navigation:
la source
Voici une solution très simple et rapide:
Cela fonctionnera sur simple pression au lieu de double pression. De plus, cela changera le comportement du contrôleur de navigation même après avoir poussé ou fait sauter le contrôleur de vue actuel.
Vous pouvez toujours modifier ce comportement dans votre contrôleur dans les actions viewWillAppear: et viewWillDisappear: si vous souhaitez définir le comportement d'un seul contrôleur de vue.
Voici la documentation :
la source
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.
la source
Dans Swift 4.2 et Xcode 10
Si vous ne voulez pas afficher la barre de navigation uniquement dans le 1er VC, mais que vous voulez afficher dans le 2e VC onword's
Dans votre 1er VC, écrivez ce code.
la source
la source
hidesBarsOnTap
sur la propriété UINavigationController sortent pour gérer cela avec le SDK iOS8https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instp/UINavigationController/hidesBarsOnTap
la source
CODE SWIFT: Cela fonctionne entièrement pour iOS 3.2 et versions ultérieures.
puis écrire
la source