Переключение на представление вкладок Tabbar программно в viewDidAppear - PullRequest
0 голосов
/ 11 июня 2018

У меня есть панель вкладок с 5 контроллерами представления.В моем третьем контроллере представления у меня есть табличное представление и его метод didSelect. Я программно меняю вкладку TabBar на первую вкладку, используя следующий код.tabBarController?.selectedViewController = tabBarController.childViewControllers[0] В моем первом контроллере представления, который childViewControllers[0], есть метод viewDidAppear, включающий мой ActivityIndicator и некоторые вызовы API.Когда я программно изменил свою панель вкладок с помощью приведенного выше кода, контроллер третьего представления остается на экране, и как только метод viewDidAppear заканчивает работу, происходит переключение, которое вызывает ощущение «зависания» для пользователя.Тем не менее, когда я нажимаю непосредственно на контроллер первого представления, появляется первый контроллер контроллера, показывает индикатор активности, выполняющий вызовы API.В чем может быть причина этого и как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Когда я изменил свой tabBarController?.selectedViewController = tabBarController.childViewControllers[0] код

DispatchQueue.main.async {
tabBarController?.selectedViewController = tabBarController.childViewControllers[0]
}

Он работает хорошо, некоторые вызовы API в первом контроллере представления вызывают зависание, поэтому я поместил его в основной поток благодаря @ Vinodh

0 голосов
/ 11 июня 2018

Можете ли вы попробовать это

tabBarController.selectedIndex = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...