我有一个UINavigationController
和一系列的UIViewControllers
就可以了。在某些情况下,我想要完全弹出两个级别。我认为我可以通过连续两次调用popViewControllerAnimated
来实现,但事实证明,第二次调用它时,它不会弹出任何内容,而是返回NULL。我是否需要存储对目标VC的引用并调用popToViewControllerAnimated?我可以做到这一点,但它使我的代码复杂化了,因为我正在将VC推入堆栈,所以我必须通过UIViewController
*。调用popViewControllerAnimated两次
下面是相关的代码片段:
UIViewController* one = [self.navigationController popViewControllerAnimated:YES];
if (...) {
// pop twice if we were doing XYZ
UIViewController *two = [self.navigationController popViewControllerAnimated:YES];
// stored in "one" and "two" for debugging, "two" is always 0 here.
}
我在做一些奇怪吗?我想编写惯用代码,所以如果“正确”的方式是拨打popToViewControllerAnimated
或其他的东西,我会很乐意改变它。
哦,我想我可以使这项工作对我来说,而不必通过周围的视图控制器指针。谢谢! – 2009-07-14 01:20:31
作为一个供参考,我不得不使用viewControllers.count - 3两回。 vc.count - 1是顶视图,两个从那里返回-3。 – 2009-07-14 04:31:02
完美!你甚至知道我想弹出到第三个视图控制器 - 我所要做的只是剪切和粘贴。谢谢。 – 2009-12-13 06:22:24