Перейти назад к контроллеру навигации из контроллера вкладок - swift 4 - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть контроллер навигации с двумя контроллерами представления, первый vc является логином, а второй vc содержит некоторую информацию с tableView. Со второго vc он перейдет к контроллеру панели вкладок (все контроллеры представления в панели вкладок встроены в контроллер навигации). Теперь, когда я нажимаю на первую вкладку, она должна вернуться ко второму vc. Я пытался уволить, но это не работает, как ожидалось. Пожалуйста, пролите немного света.

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
print("the selected index is : \(tabBar.items?.index(of: item))")
if tabBar.items?.index(of: item) == 0{
    self.dismiss(animated: true, completion: nil)
   }
}

1 Ответ

0 голосов
/ 15 сентября 2018

Существует несколько способов решения вашей проблемы, но я бы сказал, что все они не являются современными, потому что каждая вкладка в TabbarController должна иметь свой собственный NavigationController.:)

Может быть, этот способ работает для вас:

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    print("the selected index is : \(tabBar.items?.index(of: item))")
    if tabBar.items?.index(of: item) == 0 {
        let vc = YourSecondViewController() //or get it from your Storyboard
        self.navigationController.setViewControllers([vc], animated: true)
    }
}

ОБНОВЛЕНИЕ

Или, если вы нажмете свой контроллер, вы можете попробовать этот

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    print("the selected index is : \(tabBar.items?.index(of: item))")
    if tabBar.items?.index(of: item) == 0 {
        self.navigationcontroller.popToRootViewController(animated: true)
    }
}
...