iphone,ipad Navigationcontroller popToViewController无法正常运行

时间:2011-01-05 06:18:29

标签: iphone objective-c ipad uinavigationcontroller swipe

我实现了一个导航控制器,它有10+视图..在这里通过向右滑动切换到下一个视图...向左滑动将带你到前一页。在这里,我使用poptoviewcontroller进入热门页面。

在每个页面的每个页面中都有一个切换到所需视图的菜单。跳转到特定视图后,如果我们向左滑动将带来以前访问过的视图而不是这个我只想按照菜单进入上一页...

这里我使用了poptoviewcontroller的所有属性,但它可以使用任何建议。

thnks,

3 个答案:

答案 0 :(得分:0)

您必须将导航视图控制器视为一个堆栈(就像桌面上的一堆文件一样)。

所以,如果把东西推到堆栈上,当你从堆栈中弹出一些东西时,它就会成为前一个项目。

我不确定你在做什么,但我会看一下documentation的UINavigationController的setViewController:动画方法。我认为这对你的问题有帮助。

答案 1 :(得分:0)

让我解释一下nvaigationcontroller stack是什么。

Stack = {root,A,B,C,D}。

当前可见视图为D.当您创建pushViewController(E)时,意味着您向堆栈添加了一个新视图,该视图变为可见:Stack = {root,A,B,C,D,E}。当你创建popViewController时,你删除了堆栈的最后一个元素并将新的最后一个元素设置为可见,在我们的例子中它变为:Stack = {root,A,B,C,D}再次,D是可见的。 现在,如果你选择popToRootController(A),它意味着你从堆栈中删除所有元素,直到顶部元素是A,它变得可见,所以在我们的例子中它是Stack = {root,A}。

我希望我能正确理解你的问题并解释你,这样你才能正确理解层次结构。如果没有,请重新表述您的问题。

答案 2 :(得分:0)

最后我解决了这个问题。但是没有使用setViewController方法。

这里虽然pushig视图本身我在堆栈中添加了视图。即例如我想去视图A到D意味着我添加了b和c与pushviewcontroller动画:NO;和D有动画:是;

所以它对我来说非常有用......