iphone - 导航中上一个屏幕的导航 Controller 和标题?

标签 iphone objective-c ios xcode uinavigationcontroller

因此,如果我在一个屏幕上,我可以使用 pushViewController 导航到下一个导航屏幕,我只需使用返回按钮返回到上一个屏幕即可到达下一个屏幕。

上一个屏幕,(后退按钮将我们推到的屏幕)......它有名字吗? (就像以前的 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. 我知道我也可以用另一种方法尝试一些明智和合乎逻辑的事情,然后相应地 pushViewController 。但是,如果有一个检查 previousViewController 的解决方案,它将使我的任务变得简单,并且将是一次很好的学习体验。

最佳答案

您实际上可以通过使用 UINavigationControllerviewControllers 属性来做到这一点。这就是Apple says关于它:

The root view controller is at index 0 in the array, the back view controller is at index n-2, and the top controller is at index n-1, where n is the number of items in the array.

你的“previous controller”就是苹果定义的“back view controller”,对应索引n-2:

NSUInteger arraySize = [navController.viewControllers count];
UIViewController* prevController = [navController.viewControllers objectAtIndex:count-2];

关于iphone - 导航中上一个屏幕的导航 Controller 和标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335060/

相关文章:

iphone - 身份验证后如何从 Yahoo 重定向到我的 IOS 应用程序?

ios - swift IOS中的UIButton查询

iphone - uitextview 中的文本编辑器

iphone - NSDateFormatter IOS 错误

objective-c - 如何使用核心数据删除与同一实体的一对一和一对多关系

ios - 为什么 TableView 显示在导航栏下方

ios - Xcode;根据其内容自动设置 UIScrollView 的高度

iphone - 当我在 Swift 中销毁我的对象时,它不会释放我的 RAM 内存

iphone - 当应用程序处于后台时,每 X 秒获取一次用户坐标

iphone - UIScrollView scrollToTop 没有被 iPhone 调用