UINavigationController堆栈有push和pop问题

时间:2011-10-09 02:24:01

标签: iphone objective-c ipad

所以我有四个视图控制器,A,B,C,D,它们按顺序显示。让我们说我在视图C,我想去查看D,所以我将视图控制器D推入导航控制器堆栈,但是,我想要的是当D尝试返回时它直接转到视图控制器B而不是C。

有没有特定的方法来实现这一目标?逻辑方式是执行popViewController,然后执行pushViewController:C。我试过这个并且它没有用完。

3 个答案:

答案 0 :(得分:1)

不是按D键,而是使用命令A,B和D的视图控制器数组在导航控制器上调用-setViewControllers:animated:

答案 1 :(得分:0)

如果A位于堆栈的底部,则可以使用popToRootViewControllerAnimated:;如果位于堆叠的中间位置,则可以使用popToViewControllerAnimated:

答案 2 :(得分:0)

所以顺序是A-> B-> C-> D对吗?从D开始,当你点击“后退”按钮时你想去B? 这意味着弹出D然后弹出C,这样你就可以回到B.这就是popToViewController:animated:的作用。 UINavigationController Class Reference

  

popToViewController:动画:

     

弹出视图控制器,直到指定的视图控制器位于   导航堆栈的顶部。

请注意,这与popToRootViewControllerAnimated:

不同
相关问题