导航控制器和导航中上一个屏幕的标题?

时间:2011-06-13 19:11:53

标签: iphone objective-c ios xcode uinavigationcontroller

因此,如果我在屏幕上,我可以使用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的解决方案,它将使我的任务变得简单,并且将是一个很好的学习体验。

2 个答案:

答案 0 :(得分:8)

您可以使用viewControllers的{​​{1}}属性实际执行此操作。这是关于它的Apple says

  

根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶部控制器位于索引n-1处,其中n是数组中的项目数。

Apple的“前一个控制器”是Apple定义的“后视图控制器”,对应于索引n-2:

UINavigationController

答案 1 :(得分:0)

不,没有previousViewController。 UINavigationController是作为一个堆栈实现的,所以你继续推动视图控制器,那些可以从堆栈弹出。

仅供参考,如果您正在尝试查看所有视图控制器堆栈,那么UINavigationController具有名为“viewControllers”的属性,该属性实现为NSArray。