导航控制器注销

Posted

技术标签:

【中文标题】导航控制器注销【英文标题】:NavController Logout 【发布时间】:2011-06-01 10:25:18 【问题描述】:

我的应用程序的TabBarController 中有 3 个 NavController。当我在我的应用程序中进入注销功能并注销时,在TabBarController no.2 中,我让它返回到TabBarController no.1。但是,它不会回到选项卡 1 的 NavController 的根目录。

我在appDelegate 中引用了NavController,就像我对TabBarController 所做的那样,但我无法使用setSelectedIndex 对TabBarController 做同样的事情。

如何让我的NavController 回到第一个视图?

谢谢。

代码

    if ([buttonTitle isEqualToString:@"Logout"]) 

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    UITabBarController *tabBarController = appDelegate.rootController;
    ProductsNavController *productsNavController = appDelegate.productsNavController;

    [tabBarController setSelectedIndex:0];

这是我为 tabBar 所做的,我可以为 Nav 做类似的事情吗?

【问题讨论】:

【参考方案1】:

您是否将popToRootViewControllerAnimated: 称为mentioned in the documentation?

更新后,试试这个:

[…]
[tabBarController setSelectedIndex:0];
[appDelegate.productsNavController popToRootViewControllerAnimated:NO];

【讨论】:

@unset:我可以不做类似于我上面的代码的事情吗?谢谢。 @unset:它正在以某种方式工作。因为它正在回升一个水平,但不是一直到开始。有没有办法一直走到起点?谢谢。 我已经做到了,伙计。 [appDelegate.productsNavController popToViewController:[appDelegate.productsNavController.viewControllers objectAtIndex:0] animated:YES];

以上是关于导航控制器注销的主要内容,如果未能解决你的问题,请参考以下文章

ios 最佳实践 - 导航和选项卡控制器以及推送/弹出

如何使用导航控制器调用视图控制器

弹出到根视图控制器时导航栏消失

如何快速将需求视图控制器推送到导航控制器

UI 导航控制器中的右键未在 Monotouch 中显示

Swift:通过 TabBar 和导航控制器以编程方式从一个视图转换到另一个视图