如何popToRoot在一个标签上,当用户在不同的标签?

我有一个iPhone应用程序,有四个选项卡。 在选项卡1上有一个UINavigationController。 用户可以在堆栈视图上深入三层。

比方说,用户转到导航标签页1的级别2,然后切换到标签页3.有什么办法可以制作一个button,用户可以按然后popToRoot导航控制器在选项卡1(幕后),而他们仍然在表3? 这样,当触摸Tab 1再次他们将在根?

我不希望它在根级别每次触摸Tab 1时,只有当他们触摸Tab 3上的button时,它才会将Tab 1popup到根级别。

只要你有一个引用它,你可以发送消息到任何有效的对象。 如果您的应用程序委托拥有UITabBarController,并且UITabBarController中的每个视图控制器都是UINavigationController,则可以在应用程序中的任何位置执行以下操作:

 MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication].delegate; UINavigationController *navController = [appDelegate.tabBarController.viewControllers objectAtIndex:indexOfNavController]; [navController popToRootViewController:NO]; // animation not needed but could be YES 

swift语言。 把这段代码放到AppDelegate

UITabBarControllerDelegate添加到AppDelegate

 func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController){ if let navController = viewController as? UINavigationController{ navController.popToRootViewControllerAnimated(false) } }