我有UINavigationController
一系列的UIViewControllers
。在某些情况下,我想准确地弹出两个级别。我以为我可以通过popViewControllerAnimated
连续调用两次来做到这一点,但事实证明,我第二次调用它时,它没有弹出任何东西,而是返回 NULL。我是否需要存储对目标 VC 的引用并改为调用 popToViewControllerAnimated?我可以这样做,但这会使我的代码复杂化,因为我必须UIViewController
在将 VC 推入堆栈时传递 *。
这是相关的片段:
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
,或者完全是其他方式,我会很乐意改变它。