Dies kann nicht in einige Codezeilen passen, aber dies ist ein Ansatz, der für Sie möglicherweise funktioniert.
So blenden Sie die Navigationsleiste aus:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Um es zu zeigen:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
Eine Dokumentation zu dieser Methode finden Sie hier .
Um auf einen "Doppelklick" zu warten oder zweimal zu tippen, unterklassifizieren Sie UIView
eine Unterklasse und machen Sie eine Instanz dieser Unterklasse zu der view
Eigenschaft Ihres View Controllers .
Überschreiben -touchesEnded:withEvent:
Sie in der Ansichtsunterklasse die Methode und zählen Sie, wie viele Berührungen Sie in einer bestimmten Zeit erhalten, indem Sie die Zeit zwischen zwei aufeinanderfolgenden Taps messen, möglicherweise mit CACurrentMediaTime()
. Oder testen Sie das Ergebnis von [touch tapCount]
.
Wenn Sie zwei Taps erhalten, gibt Ihre untergeordnete Ansicht ein Problem aus, auf NSNotification
das sich Ihr View Controller registriert hat, um zu warten.
Wenn Ihr Ansichts-Controller die Benachrichtigung hört, wird ein Selektor ausgelöst, der die Navigationsleiste mit dem oben genannten Code entweder ausblendet oder anzeigt. Dies hängt vom aktuellen sichtbaren Status der Navigationsleiste ab, auf den durch Lesen der isHidden
Eigenschaft der Navigationsleiste zugegriffen wird .
BEARBEITEN
Der Teil meiner Antwort zur Behandlung von Tap-Ereignissen ist wahrscheinlich schon vor iOS 3.1 nützlich. Die UIGestureRecognizer
Klasse ist heutzutage wahrscheinlich ein besserer Ansatz für den Umgang mit Doppelklicks.
BEARBEITEN 2
Der schnelle Weg, um die Navigationsleiste auszublenden, ist:
navigationController?.setNavigationBarHidden(true, animated: true)
Um es zu zeigen:
navigationController?.setNavigationBarHidden(false, animated: true)