Отключить панель задач после смены ViewController в Swift? - PullRequest
0 голосов
/ 31 августа 2018

Я хотел бы отключить панель задач после программного изменения ViewController. У меня есть кнопка наведения. После щелчка по нему вызывается этот код для изменения ViewController:

self.navigationController?.setViewControllers([lvc!], animated: true)

Это хорошо работает. После изменения я вызываю метод viewDidLoad, который также вызывается (проверил консоль). Код такой:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBarController?.tabBar.isUserInteractionEnabled = false
}

Кнопка находится в HomeView. Если я вызываю self.tabBarController?.tabBar.isUserInteractionEnabled = false в методе viewDidLoad HomeView, панель вкладок отключена. Я использую NavigationController для представления различных видов.

Есть идеи, почему панель вкладок не отключена и как это исправить?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Вы должны использовать метод делегата shouldSelectViewController из UITabbarControllerDelegate. Этот делегат спрашивает, может ли пользователь выбрать контроллер представления, простыми словами.

См. Документацию Apple ссылка

Используйте это так:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    If homeControllerIsDoingSomething {
        return false
    }
    return true
}
0 голосов
/ 31 августа 2018

Попробуйте это:

_ = tabBarController?.tabBar.items?.compactMap { $0.isEnabled = false }
...