0

我知道很容易跳到前一个viewController

[self.navigationController popViewControllerAnimated:YES];

但是,是否可以弹出,而不是前一个视图,而是 n - 2 或 n - 3 视图?

4

1 回答 1

1

是的,但必须以不同的方式完成,首先从导航控制器中获取当前的视图控制器堆栈:

NSMutableArray *viewControllers = [self.navigationController.viewControllers mutableCopy];

在您看到的代码中,我使数组可变,现在您可以操作数组:

NSRange range = NSMakeRange(2, 2);
[viewControllers removeObjectsInRange:range];

在这里,我从位置 2 中删除了 2 个视图控制器,当然还有更多方法可以从数组中删除/添加控制器。

然后只需将新数组分配给navigationController:

[self.navigationController setViewControllers:viewControllers animated:YES];
于 2013-10-16T09:17:34.100 回答