To nie jest coś, co można zmieścić w kilku wierszach kodu, ale jest to jedna z metod, która może Ci się przydać.
Aby ukryć pasek nawigacji:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Aby to pokazać:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
Dokumentacja dotycząca tej metody jest dostępna tutaj .
Aby nasłuchiwać „dwukrotnego kliknięcia” lub podwójnego dotknięcia, podklasę UIView
i utwórz instancję tej podklasy jako view
właściwość kontrolera widoku .
W podklasie widoku zastąp jej -touchesEnded:withEvent:
metodę i policz, ile dotknięć uzyskasz w określonym czasie, mierząc czas między dwoma kolejnymi dotknięciami, być może z CACurrentMediaTime()
. Lub przetestuj wynik z [touch tapCount]
.
Jeśli uzyskasz dwa dotknięcia, Twój podklasowy widok zgłasza błąd, NSNotification
którego kontroler widoku zarejestrował do nasłuchiwania.
Gdy kontroler widoku usłyszy powiadomienie, uruchamia selektor, który ukrywa lub wyświetla pasek nawigacji przy użyciu wyżej wymienionego kodu, w zależności od bieżącego widocznego stanu paska nawigacji, do którego można uzyskać dostęp poprzez odczytanie właściwości paska nawigacji isHidden
.
EDYTOWAĆ
Część mojej odpowiedzi dotycząca obsługi zdarzeń dotknięcia jest prawdopodobnie przydatna jeszcze przed iOS 3.1. Ta UIGestureRecognizer
klasa jest obecnie prawdopodobnie lepszym podejściem do obsługi podwójnych dotknięć.
EDYCJA 2
Szybki sposób na ukrycie paska nawigacji to:
navigationController?.setNavigationBarHidden(true, animated: true)
Aby to pokazać:
navigationController?.setNavigationBarHidden(false, animated: true)