【发布时间】:2011-05-27 09:23:42
【问题描述】:
我有一个导航控制器向下穿过 4 个屏幕/级别,因此用户可以做出选择,然后他们在其他屏幕上做很多事情,完成后,我将它们设置回第 4 个视图/屏幕/级别导航控制器。很容易到这里...但是 后退按钮将他们带回到一堆东西(显然)而不是我希望的第 3 级!
请问这个怎么做?我真的很想避免“覆盖”后退按钮,并希望有一种更优雅的方式以编程方式快速下降,以便一切设置正确
感谢您的帮助
哎呀
编辑 1: 感谢 Jason 抽出时间帮助我 - 非常感谢。 问题是我不知道如何将该语句放在哪里,因为逻辑位置将在“返回”函数的回调中 - 我需要创建它,因为我没有看到它并且它可能会与当我自然向下钻取时,正常的“返回”按钮。
我真正想做的是以一种不可见的方式做的是回到 1 级并以编程方式降到 3 级(所以看起来我从 4 回到了 1 到 3 - 正是我想要的实际上我在 1, 2, 3) 中下降了 - 然后如果用户继续想要返回它就会自然返回,因为我最初正常向下钻取。
希望我清楚
编辑 2: 你是对的杰森。当我在做一堆其他事情时,我不再推动任何视图控制器——我完全在我的应用程序的其他地方询问一些问题并多次获得答案。然后在这些任务结束时,我需要将自己重新定位在我的最后一个导航控制器上,这是第 4 级,所以我只需启动它 - 然后我的后退按钮出现问题......我确切地知道我是如何从通过单例类(充当全局变量)从第 1 级到第 4 级,所以这就是为什么我在想可能是我应该无形地将自己定位在第 1 级并深入到第 4 级,这样后退按钮就可以正常工作。 再次感谢您在我遇到困难时抽出时间。
【问题讨论】:
-
那你为什么要压倒一切?如果您不这样做,默认行为是弹出到堆栈上的最后一个视图。
-
感谢你们让我思考我在做什么,我终于解决了。我将 UINavigatiionController 的实例保存在全局变量(单例模式)中;然后我使用 popToRoot 回到导航的根目录;然后依次弹出我的视图 2 和 3,没有动画;并用动画弹出我的视图 4。结果是当我点击返回时,它有预期的行为去查看 3.Thanks!
标签: iphone button uinavigationcontroller back