最新消息:文章中包含代码时,请遵守代码高亮规范!

IOS导航栈的使用【原创】

iOS Ace 510浏览 0评论

在IOS开发中,导航使用在各种页面跳转中。可能大家用的最多的是push和pop页面。那么为什么push后就能pop回来呢?这里就要涉及一个知识点:栈。

在数据结构中,栈是一种数据模型,有先入后出的特性。最后压入栈的数据一定最先弹出。

那么我们的导航在你push页面的时候,其实就是把页面压入栈中,当你pop页面是,系统会去这个导航栈中取出最上方的页面弹出,然后指向最上方的页面,也就是上一个页面。

那么我们知道了这个特性,我们就可以处理很多压入弹出问题了。

首先导航跳转的页面都是在导航数组中

self.navigationController.viewControllers

在这个数组中,我们可以找到压入的所有页面,那么我们就可以定制我们pop回哪个页面了。在这个数组中,下标为数组count-1的就是当前页面,而减2的就是上一个页面,也就是我们一般返回时pop去的页面。

那如果在支付成功,或者一些要求返回到前几个页面的怎么办呢?我们可以一行代码搞定

[self.navigationController popToViewController:self.navigationController.viewControllers[self.navigationController.viewControllers.count – N] animated:YES];

这里的N= 你要返回前几个界面+1。

例如返回上个页面,这里的N就=1+1。

上上个页面,这里的N就=2+1。

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/21247.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Ace的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!