Questo non è qualcosa che può adattarsi a poche righe di codice, ma questo è un approccio che potrebbe funzionare per te.
Per nascondere la barra di navigazione:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Per mostrarlo:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
La documentazione per questo metodo è disponibile qui .
Per ascoltare un "doppio clic" o toccare due volte, UIView
eseguire la sottoclasse e creare un'istanza di tale sottoclasse per la view
proprietà del controller della vista .
Nella sottoclasse della vista, sovrascrivi il suo -touchesEnded:withEvent:
metodo e conta quanti tocchi ottieni in un determinato periodo di tempo, misurando il tempo tra due tocchi consecutivi, magari con CACurrentMediaTime()
. Oppure prova il risultato da [touch tapCount]
.
Se si ottengono due tocchi, la vista della sottoclasse emette un segnale NSNotification
che il controller della vista ha registrato per l'ascolto.
Quando il controller di visualizzazione sente la notifica, attiva un selettore che nasconde o mostra la barra di navigazione utilizzando il codice sopra menzionato, a seconda dello stato visibile corrente della barra di navigazione, a cui si accede leggendo la isHidden
proprietà della barra di navigazione .
MODIFICARE
La parte della mia risposta per la gestione degli eventi di tocco è probabilmente utile prima di iOS 3.1. La UIGestureRecognizer
classe è probabilmente un approccio migliore per la gestione dei doppi tocchi, in questi giorni.
MODIFICA 2
Il modo rapido per nascondere la barra di navigazione è:
navigationController?.setNavigationBarHidden(true, animated: true)
Per mostrarlo:
navigationController?.setNavigationBarHidden(false, animated: true)