Ini bukan sesuatu yang bisa masuk ke dalam beberapa baris kode, tetapi ini adalah salah satu pendekatan yang mungkin cocok untuk Anda.
Untuk menyembunyikan bilah navigasi:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Untuk menunjukkannya:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
Dokumentasi untuk metode ini tersedia di sini .
Untuk mendengarkan "klik dua kali" atau ketuk dua kali, subkelas UIView
dan buat instance dari subkelas tersebut view
milik pengontrol tampilan Anda .
Dalam tampilan subkelas, timpa -touchesEnded:withEvent:
metodenya dan hitung berapa banyak sentuhan yang Anda dapatkan dalam durasi waktu, dengan mengukur waktu antara dua ketukan berturut-turut, mungkin dengan CACurrentMediaTime()
. Atau uji hasilnya dari [touch tapCount]
.
Jika Anda mendapatkan dua ketukan, tampilan subkelas Anda mengeluarkan masalah NSNotification
yang didengarkan pengontrol tampilan Anda.
Ketika pengontrol tampilan Anda mendengar notifikasi, ia akan memancarkan pemilih yang menyembunyikan atau menampilkan bilah navigasi menggunakan kode yang disebutkan di atas, tergantung pada keadaan yang terlihat saat ini di bilah navigasi, diakses melalui membaca isHidden
properti bilah navigasi .
EDIT
Bagian dari jawaban saya untuk menangani acara tap mungkin berguna kembali sebelum iOS 3.1. The UIGestureRecognizer
kelas mungkin pendekatan yang lebih baik untuk menangani double-tap, hari ini.
EDIT 2
Cara Swift untuk menyembunyikan bilah navigasi adalah:
navigationController?.setNavigationBarHidden(true, animated: true)
Untuk menunjukkannya:
navigationController?.setNavigationBarHidden(false, animated: true)