如何解决导航控制器和导航中上一个屏幕的标题?
| 因此,如果我在一个屏幕上,则可以使用pushViewController导航到下一个导航屏幕,然后直接进入下一个屏幕,并使用backButton到上一个屏幕。 前一个屏幕(后退按钮将我们推到的屏幕)...是否有名称? (就像previousViewController一样)? 这个问题的目标是: 如果我有5个屏幕(分别为1、2、3、4、5)...可以说,我从1-> 3导航,在另一种情况下,我从2-> 3导航。我想说的是,如果\ “ PreviousViewController是1 \”,然后从3导航到4(1-> 3-> 4),否则,如果previousViewController是2,我想导航到3到5(2-> 3-> 5)... 我该怎么做? 谢谢 ! ps。 我知道我也可以使用另一种方法尝试明智且合乎逻辑的方法,并相应地使用pushViewController。但是,如果有一个解决方案可以检查previousViewController,它将使我的工作变得轻松,并且将是一次很好的学习体验。解决方法
您实际上可以通过使用
UINavigationController
的viewControllers
属性来实现。这就是苹果对此的评价:
根视图控制器位于阵列的索引0处,后视图控制器位于索引的n-2处,而顶部控制器位于索引的n-1处,其中n是阵列中的项数。
您的“上一个控制器”是Apple定义的“后视图控制器”,对应于索引n-2:
NSUInteger arraySize = [navController.viewControllers count];
UIViewController* prevController = [navController.viewControllers objectAtIndex:count-2];
, 不,没有previousViewController。 UINavigationController是作为堆栈实现的,因此您可以继续推动视图控制器,并且这些控制器可以将自己弹出堆栈。
仅供参考,如果您尝试查看所有的ViewController堆栈,则UINavigationController具有称为““ viewControllers \”的属性,该属性实现为NSArray。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。