Saya mencoba mencari cara untuk menyembunyikan bilah tab di aplikasi iOS saya. Saya tidak peduli dengan animasi mewah atau apapun. Hanya sesuatu yang bisa saya masukkan ke fungsi ViewDidLoad ().
Jawaban:
Anda cukup menggunakan ini dalam ViewDidLoad()metode Anda .
self.tabBarController?.tabBar.hidden = true
Untuk Swift 3.0, 4.0, 5.0 :
self.tabBarController?.tabBar.isHidden = true
Atau Anda dapat mengubah posisi z dari bilah tab dengan cara ini:
self.tabBarController?.tabBar.layer.zPosition = -1
dan jika Anda ingin menampilkannya lagi:
self.tabBarController?.tabBar.layer.zPosition = 0
Jawaban yang diterima berfungsi, tetapi transisi ke tampilan lain memiliki animasi yang berombak (Animasi tab Bar)
Juga ingin menambahkan meskipun solusi Kalpesh bekerja dengan sempurna untuk saya, saya menemukan bahwa setiap pengontrol tampilan memiliki atribut untuk hidesBottomBarWhenPushed (lihat storyboard.) Jika Anda ingin menyembunyikan bilah tab, Anda harus memberi tanda centang pada itu. Dan itu akan berhasil dengan baik.
Pembaruan: Saya tidak yakin apakah ini adalah hal yang diketahui, tetapi inilah yang dikatakan halaman dokumentasi apel:
Saya pikir ini berarti Anda harus menetapkan nilai dasar hidesBottomBarWhenPushed di pengontrol tampilan paling atas (yang pertama di tumpukan navigasi.) Setelah Anda menyetelnya ke true, Anda dapat mengubah ke false atau true untuk viewcontrollers lain di tumpukan. Namun, jika nilai hidesBottomBarWhenPushed pengontrol tampilan teratas Anda salah, itu tidak akan menampilkan bilah tab untuk pengontrol lain di tumpukan navigasi.
Sebelum dorong set controller.hidesBottomBarWhenPushed = true
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
setViewControllers
Tidak perlu menyetel properti isHidden tabBar.
Cukup, Pergi ke ViewController (di StoryBoard) -> Attribute inspector -> Di bawah bagian 'View Controller' pilih 'Hide Bottom Bar on Push' checkbox. Ini bekerja seperti pesona.
Jika Anda menggunakan cara 'isHidden' Anda perlu melakukan banyak penanganan, yaitu untuk membuatnya muncul kembali saat Anda kembali dan juga untuk menghapus ruang kosong bawah setelah menyembunyikan tabBar.
Hide Bottom Bar on Pushmemiliki animasi yang tidak menyenangkan, imo.
Cepat 3.
self.tabBarController?.tabBar.isHidden = true
Anda juga dapat mengaturnya dalam ekstensi (gunakan jawaban Dharmesh Kheni)
extension UITabBar {
func tabsVisiblty(_ isVisiblty: Bool = true){
if isVisiblty {
self.isHidden = false
self.layer.zPosition = 0
} else {
self.isHidden = true
self.layer.zPosition = -1
}
}
Ini adalah cara terprogram untuk Swift 4.0, 4.1, 4.2, 5.0 dan yang lebih baru >:
tabBarController?.hidesBottomBarWhenPushed = true
atau
hidesBottomBarWhenPushed = true
Untuk menyembunyikan navigationBar dan tabBar saya menggunakan fungsi selanjutnya:
var tabBarHeight : CGFloat!
func fullScreenAction(){
if navigationController?.isNavigationBarHidden ?? false {
//Show navigationBar
navigationController?.setNavigationBarHidden(false, animated: false)
//Show tabBar
tabBarController?.tabBar.isHidden = false
//Update the height of tabBar
if (!(tabBarController?.tabBar.frame.size.height.isEqual(to: 0))!) {
tabBarHeight = self.tabBarController?.tabBar.frame.size.height
}
tabBarController?.tabBar.frame.size.height = tabBarHeight
} else {
//Hide navigationBar
navigationController?.setNavigationBarHidden(true, animated: false)
//Hide tabBar
tabBarController?.tabBar.isHidden = true
//Update the height of tabBar
tabBarHeight = tabBarController?.tabBar.frame.size.height
tabBarController?.tabBar.frame.size.height = 0
}
}
Ketika orientasi layar telah mengubah ketinggian tabBar juga berubah, jadi saya menggunakan fungsi selanjutnya untuk keluar dari layar penuh untuk mengubah ukuran tinggi:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if navigationController?.isNavigationBarHidden ?? false {
navigationController?.setNavigationBarHidden(false, animated: false)
tabBarController?.tabBar.isHidden = false
}
}
Semoga bermanfaat untuk anda.
vc.hidesBottomBarWhenPushed = trueharus melakukan pekerjaan itu. JANGAN menampilkan dan menyembunyikan tabbar secara manual.