Индекс контроллера панели вкладок меняется? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть 2 вкладки: Cal c V C и Browse VC; они расположены в таком порядке, и приложение запускается в Cal c V C.

Использование оператора печати tabbarcontroller.selectedindex в viewwillappear каждого виртуального канала Я узнал, что когда Cal c V C первый появляется, он показывает индекс 0. Когда я нажимаю на Browse V C, он показывает индекс 1. Пока все хорошо.

Когда я нажимаю на Cal c V C, его индекс становится равным 1, а Browse V C становится равным 0. Он остается таким до тех пор, пока вы не закроете приложение.

Почему это проблема? Я пытаюсь отключить Обзор V C, когда Cal c V C активен, используя .isEnabled = false, но я не могу сделать это таким образом из-за изменения индекса

1 Ответ

1 голос
/ 19 марта 2020

Во время срабатывания viewWillAppear selectedIndex может не изменяться. Вы должны использовать viewDidAppear.

override func viewDidAppear(_ animated: Bool) {
   print(tabBarController?.selectedIndex)
}

Или вы можете использовать tabBar (_: didSelect:) из UITabBarDelegate

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
   print(tabBar.items?.index(of: item))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...