如何从一个UITabBarController中的另一个UINavigationController跳转到另一个UITabBarController中的顶级UINavigationController?

3

好的,这是情景:

我有一个选项卡应用程序,在每个选项卡中都有一个UINavigationController。假设我有两个选项卡,“主页”和“退出登录”。在“主页”中,用户按照基于导航的导航向下移动3个级别并按提交按钮。之后,他们单击“退出登录”,再单击退出登录按钮。

我想要的是:

将用户带回第一个选项卡“主页”,然后执行“弹出到根导航控制器”

我的Signout代码如下:

[[self tabBarController]setSelectedIndex:0]; //this takes me to the first tab "Home"

[self.navigationController popToRootViewControllerAnimated:YES]; //this does not work

我该如何进行此操作?


据我所知,你的第一行代码在苹果的指南中是不被赞同的。你不应该以编程方式设置选项卡项目。 - jv42
你为什么要同时控制第一个选项卡并弹出导航控制器? - Legolas
我正在将用户带回主屏幕,因为他们刚刚点击了“退出登录”。下一次用户登录时,我希望他们每次都从同一步骤开始,而不是“退出登录”屏幕。 - milof
1个回答

2
您需要在正确的控制器上调用pop命令,例如执行以下操作:
UIViewController *selectedController = [[self tabBarController] selectedController];
[[selectedController navigationController] popToRootViewControllerAnimated: YES];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接