当根控制器是标签栏控制器时,AppDelegate如何定位导航控制器

时间:2015-03-24 16:00:09

标签: ios objective-c

我的根视图控制器是一个带有3个标签的标签控制器。

选项卡A和B是标准视图控制器,C是导航控制器/视图控制器链。

我想popToRootViewController(在这种情况下这是正确的方法吗?还是popToViewController?)来自AppDelegate的C标签。

我试过了

self.window.rootViewController.navigationController

但它什么都没有,可能是因为导航控制器只存在于一个标签中。

1 个答案:

答案 0 :(得分:1)

如果rootViewControllerUITabBarController,则rootViewController.navigationController无法正常工作,因为您的标签栏没有导航控制器。

您想要做的是在视图控制器上使用popToRootViewController,这是TabbarController的第三个选项卡。 (您必须确保此控制器是UINavigationController

这样的事情应该有效:

UITabBarController *tabbarController = (UITabBarController *) self.window.rootViewController;
UINavigationController *navController = tabbarController.viewControllers[2];
[navController popToRootViewController];