因此,如果我在屏幕上,我可以使用pushViewController导航到下一个导航屏幕,我只需到达下一个屏幕,使用backButton到上一个屏幕。
是否有上一个屏幕,(后退按钮将我们推送到的屏幕)...是否有名字? (就像之前的ViewController os那样)??
我在这个问题背后的目标:
如果我有5个屏幕(分别为1,2,3,4,5)...让我说我从1导航 - > 3,在另一种情况下,我从2导航 - > 3.我想说如果“PreviousViewController为1”则从3导航到4(1 - > 3 - > 4),否则如果previousViewController是2,我想导航到3到5(2 - > 3 - > 5)......
我如何做到这样的事情?
谢谢!
的 P.S。 的 我知道我也可以用另一种方法尝试一些合理且合乎逻辑的东西,并相应地推送ViewController。但是如果有一个检查previousViewController的解决方案,它将使我的任务变得简单,并且将是一个很好的学习体验。
答案 0 :(得分:8)
您可以使用viewControllers
的{{1}}属性实际执行此操作。这是关于它的Apple says:
根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶部控制器位于索引n-1处,其中n是数组中的项目数。
Apple的“前一个控制器”是Apple定义的“后视图控制器”,对应于索引n-2:
UINavigationController
答案 1 :(得分:0)
不,没有previousViewController。 UINavigationController是作为一个堆栈实现的,所以你继续推动视图控制器,那些可以从堆栈弹出。
仅供参考,如果您正在尝试查看所有视图控制器堆栈,那么UINavigationController具有名为“viewControllers”的属性,该属性实现为NSArray。