Одновременное переключение вкладок и сброс контроллеров представления Nav-Swift iOS

У меня есть tabBarController с 2 вкладками:

tab0, tab1

В tab0 у меня есть навигационный контроллер с 3 дочерними представлениями

viewA (root), viewB, viewC

нажатие кнопки в viewC приведет меня к tab1 с помощью кода

@IBAction func switchButtonTapped(sender: UIButton){
    tabBarController.selectedIndex = 1
}

Проблема, с которой я сталкиваюсь, состоит в том, что, как только я переключаюсь на tab1, я не могу заставить tab0 вернуться к viewA (его корневой vc), он остается на viewC.

Как мне переключиться с tab0 на tab1 и одновременно сбросить представления в tab0?

Так как я одновременно переключаю вкладки и сбрасываю vcs контроллера Nav, это должно происходить в разных потоках?

 @IBAction func switchButtonTapped(sender: UIButton){
        tabBarController.selectedIndex = 1
        dispatch_async(dispatch_get_main_queue(), {
self.navigationController?.popToRootViewController(animated:true)
} 
    }

1 ответ

Решение

Примечание: код Swift 3:

@IBAction func switchButtonTapped(sender: UIButton){
    tabBarController?.selectedIndex = 1
    navigationController?.popToRootViewController(animated: true)
}

Это прекрасно работает для меня (он выбирает вторую вкладку, и когда я нажимаю на кнопку первой вкладки, он показывает root -first- ViewController для первой вкладки).

Другие вопросы по тегам