如何让所有导航控制器在标签栏中扎根?
Posted
技术标签:
【中文标题】如何让所有导航控制器在标签栏中扎根?【英文标题】:How to get all navigation controllers to root in tab bar? 【发布时间】:2011-06-23 06:29:00 【问题描述】:我有一个应用程序,它在标签栏控制器中有三个标签。每个标签栏项目都有一个导航控制器,第一个标签栏项目上有一个注销按钮。现在,如果我导航到不同的导航控制器并注销,那么所有导航控制器对新用户保持相同的状态。我希望所有导航控制器在用户注销时都能进入根目录。
【问题讨论】:
【参考方案1】:试试这个:
for (UINavigationController *navController in myViewController.tabBarController.viewControllers)
[navController popToRootViewControllerAnimated:NO];
【讨论】:
把这段代码放在哪里我已经用代码对导航控制器做了任何事情。我直接从 xib 使用它 任何地方,可能在您的注销按钮操作中,其中“myViewController”将是self
。【参考方案2】:
我认为您的问题可以通过编写注销方法来解决,该方法会弹出所有添加到根控制器的视图控制器。当用户点击注销按钮时,所有视图控制器都应该弹出,如果需要调用所有三个视图控制器中的操作。
希望它会起作用..
【讨论】:
【参考方案3】:jtbandes,您的回答非常有效,但是如果我只需要为一个选项卡推送根视图控制器怎么办?我不想让其他标签成为修饰符,我只需要推送一个标签的根视图控制器。
【讨论】:
备案:刚刚回答了我自己的问题。答案是:UINavigationController *navig = [self.tabBarController.viewControllers objectAtIndex:3]; --> 将“3”替换为您要刷新的选项卡的索引。以上是关于如何让所有导航控制器在标签栏中扎根?的主要内容,如果未能解决你的问题,请参考以下文章
标签栏 UIViewController 中导航栏中的按钮未显示