NSArray *viewControllers = self.navigationController.viewControllers;
A *viewController = [viewControllers objectAtIndex:[viewControllers count] - 2 ];

[self.navigationController popToViewController:viewController animated:YES];

方法一:

 

你自己算 你是第几级界面  然后pop回去就可以了

方法二:

 

​self.navigationController是当前的页面;

MyNeedJumpVC 是我们需要跳转的页面;

UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

(1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面。在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界面,也就是用户看到的界面。

(2)我们需要把导航控制器加载到APP中,需要把这个导航控制器设置为window的根视图控制器(都是控制器类,可以赋值),这样就相当于加载到了window里。

(3)我们要在栈中新增或者删除一个视图控制器,就需要得到导航控制器,一般在栈中得所有视图控制器都有一个self.navigationController,意思是我的导航控制器,也就是这个视图控制器所在的导航控制器,这样就拿到了导航控制器。

(4)栈中新增视图控制器用pushViewController,其实就是push进去一个,这样对于用户而言就是打开一个新界面了。

(5)栈中删除一个视图控制器用popViewControllerAnimated,当然这个pop只能pop最上面的那个,对于用户而言相当于从当前视图回到上一级视图。

(6)其实这个push和pop对于用户而言都是打开和跳转页面的一个操作。而pop由更多地操作方法,如一下子pop掉只剩下一个根视图控制器,那么就相当于从好几层直接回到最原始的主页面。也可以指定pop几个,以跳转到指定的页面。

(7)最重要的应该就是这个push和pop方法,而pop有很多种,这个理解后就不难记忆。

最新文章

  1. Android高手速成--第三部分 优秀项目
  2. TP学习笔记一(tp的目录结构 , tp的输出方式)
  3. oracle中SQL根据生日日期查询年龄的方法
  4. java 操作数据库
  5. 在WP8项目中使用ARMASM
  6. CString,string,char*之间的转换(转)
  7. AdapterView及其子类之二:使用ListActivity及ArrayAdapter创建列表
  8. C++单元测试2
  9. memcached 入门
  10. 实力为王 八年DBA经验谈
  11. iOS核心笔记—源代码管理工具-GIT
  12. java基础知识3--如何获取资源文件(Java中获取资源文件的url)
  13. 【二十五】cookie与session学习总结
  14. 分布式进阶(三)Ubuntu 14.04 之JDK安装
  15. Python之excel文件追加内容
  16. Android--SurfaceView播放视频
  17. Java9 接口细谈
  18. c# 简单方便的连接oracle方式
  19. docker官方文档学习-1-Docker for mac安装配置
  20. java面试:手写代码

热门文章

  1. Shortcut 常用快捷键
  2. 五、Pillar数据管理中心
  3. Linux环境下实现管道通信-问题
  4. php 过时的sql操作库(学习使用)
  5. Servlet 编程 请求的转发
  6. Powershell获取WMI设备清单
  7. ITIL图示
  8. Java静态块学习
  9. Linux 执行ThinkPHP 文件的计划任务
  10. 【IOS笔记】Gesture Recognizers