时间紧迫,写一些 NavigationController 一次性返回2级界面甚至更多级的界面
在NavigationController中,调用pushViewController可以将界面推到指定的界面,调用popToViewController可以返回上层界面,可是它的实现原理是什么?
好吧,说到原理,就要看源码,可是源码被封装了,看不到,那就不谈原理,那就谈谈 它为什么知道你pop的是上一层的viewcontroller,而不是别的呢?在Navigationcontroller的属性列表中,我们可以发现一个属性:viewControllers ,对,就是它! 它将你所有push的viewcontroller 全部装进,然后通过索引来找到你要pop的viewcontroller。
如果当前界面在viewControllers 中的索引是 3,那么popToViewController(返回上层界面) 只是 拿到索引是2的vc。
知道这个原理,那么我们不就可以为所欲为的返回到指定界面了吗?
来一个返回2级界面的代码:
//当前vc 在数组中的索引
NSInteger index=[kAPPDELEGATE.navigationController.viewControllers indexOfObject:self];
//退出成功 获取素组中 当前索引-2 的viewcontroller,然后popTo指定vc
[kAPPDELEGATE.navigationController popToViewController:[kAPPDELEGATE.navigationController.viewControllers getObjectAtIndex:index-] animated:YES];
时间紧迫,写一些 NavigationController 一次性返回2级界面甚至更多级的界面的更多相关文章
- navigationController 的返回按钮自定义
1: navigationController 的返回按钮自定义 SecondViewController *secondVC = [SecondViewController new]; ...
- 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果
package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...
- NavigationController的返回按钮自定义
假设需求时这样: NavigationController下有2个视图,从A视图会Push到B视图,默认情况下,当显示视图B时,视图B的导航bar上会出现返回按钮,按钮标题文字默认为A视图的title ...
- 用eval似乎会执行结果一次性返回,结果显示的是一行
with open(r'商品资料','r',encoding='utf-8') as f1: lis_goods = eval(f1.read()) # 用eval似乎会执行结果一次性返回,结果显示的 ...
- 用 Python 写个贪吃蛇,保姆级教程!
本文基于 Windows 环境开发,适合 Python 新手 本文作者:HelloGitHub-Anthony HelloGitHub 推出的<讲解开源项目>系列,本期介绍 Python ...
- 解析xml,返回第一级元素键值对。如果第一级元素有子节点,则此节点的值是子节点的xml数据。
/** 转换成XML格式字符串 **/ public static String doXMLStr(Map<String, String> map) { StringBuffer xml_ ...
- web api写api接口时返回
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
- python 统计时间,写日志
python 统计时间使用time模块,写日志使用logging模块,这两个都是标准模板. 测试socket使用socket模块 # 统计时间 ---------------------- impor ...
- 两周的业余时间,写了个简单的shell
Linux下的,环境是 Fedora 实现了基本的内部命令功能,及比较完善的内部命令框架. 类似于MFC消息映射表的方式,写完一个内部命令,只需要向这个头文件中,导入一个头文件,再写入命令处理函数,就 ...
随机推荐
- I2C I2S SPDIF
I2C总线 大多数是用于电视机等家用电器的(显卡与显示器之间的通讯也是)I2S: I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输 ...
- Java之获取系统属性
import java.util.Enumeration; import java.util.Properties; public class Example609 { public static v ...
- 1414. Astronomical Database(STL)
1414 破题 又逼着用stl 卡内存 trie树太耗了 水不过去 用set存字符串 set可以自己按一定顺序存 且没有重复的 再用lower_bound二分查找字符串的第一次出现 接着往后找就行了 ...
- poj 3026 Borg Maze (最小生成树+bfs)
有几个错误,调试了几个小时,样例过后 1Y. 题目:http://poj.org/problem?id=3026 题意:就是让求A们和S的最小生成树 先用bfs找每两点的距离,再建树.没剪枝 63MS ...
- 更改nginx默认的网页目录
默认网站根目录为/usr/local/nginx/html,要将它改成/homw/www vi /usr/local/nginx/conf/nginx.conf 将其中的 loca ...
- Windows安装weblogic
WebLogic安装结束 以下是进入MyEclipse启动配置WebLogic
- Android样式——Styles
说明 样式(style)是属性的集合,用来指定View或者Window的外观和格式. 这些属性可以是height(高度).padding(内边距).font size(字体颜色)等. 样式定义在另一个 ...
- 在文件中读取、存储Json格式的字符串
public class Weather { static readonly string FilePath = System.Environment.CurrentDirectory + @&quo ...
- 总结1-JMeter压力测试
考虑到测试最需要逻辑能力,所以今天开始慢慢写些东西,希望能自我锻炼下. 第一个课题是压力测试,会把我了解到的和百度的东西按我的思路整合一下 一 什么是压力测试 二 压力测试所需要关注的参数 三 怎么做 ...
- linux内核-红黑树
//rbtree.h /* Red Black Trees (C) 1999 Andrea Arcangeli <andrea@suse.de> This program ...