当用户在不同的选项卡中时,如何在一个选项卡上popToRoot?

时间:2011-11-15 20:34:59

标签: iphone objective-c ios xcode cocoa-touch

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

假设用户转到导航标签1的第2级,然后切换到标签3.是否有任何方法可以创建用户可以按下的按钮,然后在标签1上弹出导航控制器(在后面场景)虽然他们仍然在Tab 3?那么当再次触摸Tab 1时它们将处于根级别?

我不希望它在根级别每次触摸Tab 1时,只有当他们触摸Tab 3上的那个按钮时它才会将Tab 1弹出到根级别。

1 个答案:

答案 0 :(得分:1)

只要您对任何有效对象有引用,就可以向其发送消息。如果您的app委托拥有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