Подтвердить что ты не робот

Скрыть панель вкладок в быстром приложении IOS

Я пытаюсь понять, как скрыть панель вкладок в моем быстром приложении iOS. Меня не волнует какая-то причудливая анимация или что-то еще. Просто я могу добавить функцию ViewDidLoad().

4b9b3361

Ответ 1

Вы можете просто использовать это в своем 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

Ответ 2

Принятый ответ работает, но переход в другое представление имеет прерывистую анимацию (вкладка "Анимация панели")

Также хотел добавить, хотя решение Kalpesh отлично сработало для меня, я обнаружил, что у каждого контроллера представления есть атрибут для hidesBottomBarWhenPhed (посмотрите раскадровку). Если вы хотите скрыть панель вкладок, вы должны поставить галочку на этом. И это будет прекрасно работать.

enter image description here

Обновление: я не уверен, что это известная вещь, но вот что говорит страница документации Apple:

Контроллер представления, добавленный как дочерний элемент контроллера навигации, может отображать дополнительную панель инструментов в нижней части экрана. Значение этого свойства в самом верхнем контроллере представления определяет, видна ли панель инструментов. Если значение этого свойства равно true, панель инструментов скрыта. Если значение этого свойства равно false, полоса видна.

Я думаю, это означает, что вы должны установить базовое значение hidesBottomBarWhenPush на самом верхнем контроллере представления (первом в стеке навигации). Как только вы установите это значение в true, вы можете изменить значение false или true для других контроллеров представления в стек. Но, если ваш самый верхний контроллер вида hidesBottomBarWhenPhed имеет значение false, он не будет отображать панель вкладок для других контроллеров в стеке навигации.

Ответ 3

Перед нажатием кнопки set.hidesBottomBarWhenPushed = true

let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)

Ответ 4

Нет необходимости устанавливать свойство tabBar isHidden.

Просто перейдите в ViewController (в StoryBoard) → Инспектор атрибутов → В разделе "View Controller" установите флажок "Скрыть нижнюю панель при нажатии". Это работает как шарм.

Если вы идете по пути "isHidden", вам нужно много обработать, то есть, чтобы он снова появился, когда вы вернетесь, а также удалить нижнее пустое пространство после скрытия tabBar.

Ответ 5

Swift 3.

self.tabBarController?.tabBar.isHidden = true

Ответ 6

Вы также можете установить его в расширении (используйте ответ 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
    }
}

Ответ 7

Это программный способ для Swift 4.0, 4.1, 4.2, 5.0 и более поздних версий>:

tabBarController?.hidesBottomBarWhenPushed = true

или же

hidesBottomBarWhenPushed = true

Ответ 8

Чтобы скрыть панель навигации и панель вкладок, я использую следующую функцию:

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

    }

}

Когда ориентация экрана изменилась, изменилась и высота tabBar, поэтому я использую следующую функцию для выхода из полноэкранного режима для изменения высоты:

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
    }
}

Я надеюсь, что это полезно для вас.