UINavigationController popToRootViewControllerAnimated一个接一个地返回

时间:2015-10-16 13:20:39

标签: ios uinavigationcontroller viewwilldisappear

这是我打电话回到rootViewController的{​​{1}}的简单代码:

UINavigationController

但后退导航逐一发生 假设我有3个viewControllers - A,B,C
A - > B - > ç
在C背面我想要的是:
C - > A
但是在使用popToRootViewControllerAnimated时,这就是后退导航的显示方式:
C - > B - > A

2 个答案:

答案 0 :(得分:0)

尝试使用

[self.navigationController popToViewController:VC animated:YES] 

而不是

[self.navigationController popToRootViewControllerAnimated:YES]

将其包装在一个类别中并添加您的逻辑以使其更加模块化。您可以跳转到任何视图控制器。

另一种做法是调整popToRootViewControllerAnimated,我认为你绝对应该避免,因为这是一种非常适用的通用方法。你可以用你的混合行为修改它的实际行为。

请参阅http://nshipster.com/method-swizzling/了解混蛋。

答案 1 :(得分:0)

尝试实现应该发生的事情

-(void)viewWillDisappear:(BOOL)animated
  {
    [self.navigationController popToRootViewControllerAnimated:YES];
    [super viewWillDisappear:animated];

  }

第一次调用 viewWillDisappear 方法。将首先执行。执行此操作后您当前的视图是" B "。然后执行" [self.navigationController popToRootViewControllerAnimated:YES] " 所以。您将看到 A< -B (视图A从B支持)

所以,你会看到所有 A< -B< -C

要解决此问题,请尝试在 viewWillDisappear 方法

之外执行 popToRootViewControllerAnimated 方法