hidesBottomBarWhenPressed скрывает TabBar навсегда - PullRequest
0 голосов
/ 23 февраля 2020

Я использую Xcode 11.2 и минимальный проект iOS цель развертывания iOS 12.4.

У меня есть TabBarController на странице root и на одной из вкладок у меня есть FirstViewController. Когда я извлекаю sh SecondViewController из FirstViewController, я хочу, чтобы панель вкладок была скрыта. Я использовал свойство hidesBottomBarWhenPhed, чтобы скрыть панель вкладок.

Панель вкладок скрыта, когда я пу sh SecondViewController, но когда я открываю SecondViewController и возвращаюсь к FirstViewController, панель вкладок все еще скрыта.

Я пытался несколькими способами установить hidesBottomBarWhenPressed в false при возврате к FirstViewController, но ни одна из попыток не сработала.

Как я могу отобразить панель вкладок при возврате назад к FirstViewController?

class FirstViewController: UIViewController {

    @IBAction func buttonTap(_ sender: Any) {
        let vc2 = SecondViewController()

        // Set to Hide TabBar
        hidesBottomBarWhenPushed = true

        navigationController?.pushViewController(vc2, animated: true)
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        // This Does Not Work
        hidesBottomBarWhenPushed = false
    }
}


class SecondViewController: UIViewController {

    /*
        All The Followings Does Not Work
    */

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        hidesBottomBarWhenPushed = false
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        hidesBottomBarWhenPushed = false
    }

    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)

        hidesBottomBarWhenPushed = false
    }
}

1 Ответ

0 голосов
/ 25 февраля 2020

Ключ должен был установить hidesBottomBarWhenPressed в true из-за пределов SecondViewController.

Код ниже - это все, что мне нужно было написать.

class FirstViewController {

    func pushSecondViewController {
        let vc = SecondViewController()
        vc.hidesBottomBarWhenPushed = true // <- Here
        navigationController?.push
        navigationController?.pushViewController(vc, animated: true)
    }
}
...