Я намагаюся зрозуміти, як приховати панель вкладок у моєму швидкому додатку iOS. Мене не хвилює якась вигадана анімація чи щось інше. Просто те, що я можу помістити у функцію ViewDidLoad ().
Відповіді:
Ви можете просто використовувати це у своєму ViewDidLoad()
методі.
self.tabBarController?.tabBar.hidden = true
Для Swift 3.0, 4.0, 5.0 :
self.tabBarController?.tabBar.isHidden = true
Або ви можете змінити положення z на панелі вкладок таким чином:
self.tabBarController?.tabBar.layer.zPosition = -1
і якщо ви хочете показати це знову, тоді:
self.tabBarController?.tabBar.layer.zPosition = 0
Прийнята відповідь працює, але перехід до іншого подання має похитну анімацію (анімація панелі вкладки)
Також хотів додати, хоча рішення Калпеша для мене спрацювало ідеально, я з’ясував, що кожен контролер подання має атрибут hidesBottomBarWhenPushed (ознайомтесь із розкадровкою.) Якщо ви хочете приховати панель вкладок, вам слід поставити галочку на цьому. І це було б чудово.
Оновлення: Я не впевнений, що це відома річ, але ось що сказано на сторінці документації до Apple:
Я думаю, це означає, що вам потрібно встановити основне значення hidesBottomBarWhenPushed на верхньому контролері перегляду (першому в стеці навігації.) Після того, як ви встановите це значення true, ви можете змінити значення false або true для інших контролерів огляду на стек. Але якщо значення hidesBottomBarWhenPushed вашого найвищого контролера подання хибне, воно не відображатиме панель вкладок для інших контролерів у стеці навігації.
Перед натисканням встановіть controller.hidesBottomBarWhenPushed = true
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
setViewControllers
Не потрібно встановлювати властивість isBidden вкладки tabBar.
Просто перейдіть до ViewController (у StoryBoard) -> Інспектор атрибутів -> У розділі «Перегляд контролера» встановіть прапорець «Сховати нижню панель при натисканні». Це працює як шарм.
Якщо ви рухаєтесь по шляху 'isHidden', вам потрібно зробити багато обробки, тобто зробити це знову, коли ви повернетесь назад, а також видалити нижній порожній простір після приховування tabBar.
Hide Bottom Bar on Push
має неприємну анімацію, imo.
Стрімкий 3.
self.tabBarController?.tabBar.isHidden = true
Це програмний спосіб для Swift 4.0, 4.1, 4.2, 5.0 та пізніших >:
tabBarController?.hidesBottomBarWhenPushed = true
або
hidesBottomBarWhenPushed = true
Щоб приховати панель навігації та панель вкладок, я використовую наступну функцію:
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
}
}
Коли орієнтація екрана змінила і висоту вкладки, зміниться також, тому я використовую наступну функцію для виходу з повноекранного режиму, щоб змінити висоту:
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
}
}
Сподіваюся, це буде корисно для вас.
vc.hidesBottomBarWhenPushed = true
повинні виконати роботу. НЕ показуйте та не приховуйте панель вкладок вручну.