Согласно вашему коду, ваш контроллер панели вкладок является корнем контроллера навигации, поэтому self.navigationController
будет ссылаться на , который контроллер навигации.Это означает, что строка:
self.navigationController?.popViewController(animated: false)
попытается извлечь контроллер панели вкладок из контроллера навигации, но, поскольку он является корневым, он ничего не делает.
Я предполагаю, что у вас есть контроллеры навигациикак каждая из вкладок контроллера панели вкладок, и вы хотите вывести эти контроллеры навигации в их корни, верно?
Вы должны использовать параметр viewController
, чтобы обратиться к желаемомунавигационные контроллеры:
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
(viewController as? UINavigationController)?.popToRootViewController(animated: false)
})
}