1.对于单独的一个试图控制器,它的执行顺序如下:
 (1).如果有XIB文件的话,首先加载XIB文件,即先执行- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}方法
 (2).没有xib文件的话,会执行- (void)viewDidLoad{}方法(还有一个loadview方法,但是一般不在这个方法里面写代码)
 (3).接下来 会执行-(void)viewWillAppear:(BOOL)animated{}
 (4).再下来会执行-(void)viewDidAppear:(BOOL)animated{}
 当要离开此试图控制器时 会执行
(5)-(void)viewWillDisappear:(BOOL)animated{}
 (6).最后-(void)viewDidDisappear:(BOOL)animated{}
 所以基本我们的业务逻辑都是根据上面的大致顺序来进行。
 
2.对于两个视图控时器,比如VC1 和VC2 ,VC1通过导航push到VC2,那么执行顺序又是什么呢?
 (1)首先 如果VC2有XIB文件的话,先执行VC2- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}方法
 (2)VC2没有XIB文件的话,首先会执行VC2的- (void)viewDidLoad{}方法
 (3).接下来会执行VC2的-(void)viewWillAppear:(BOOL)animated{}方法
 (4).然后会执行VC1的-(void)viewWillDisappear:(BOOL)animated{}
 (5).然后是VC1的-(void)viewDidDisappear:(BOOL)animated{}
 (6).下来会接着执行VC2的(void)viewDidAppear:(BOOL)animated{}

3.另外关于两个的试图控制器间属性传参,参数的赋值 是写在push前还是后也是有讲究的哈。其实还是和上面执行顺序有关。如果传递的参数想在- (void)viewDidLoad{}方法或- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}方法中使用,属性的赋值要写在push之前,否则你会发现传过来的是个空值。。。

关于 VC 执行顺序相关推荐

  1. 学习MFC首先要知道的--程序执行顺序

    MFC的程序执行顺序 很多刚学MFC的人都会被MFC给弄的晕头转向.以前传统的C语言中的main()不见了,window sdk api 中的WinMain()函数也不见了,到底用MFC编写的程序是如 ...

  2. select查询语句执行顺序

    查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from--where--group by--having--order by 其中select和from是必须的,其他关键词是可 ...

  3. SpringCloud配置文件 application.yml和 bootstrap.yml区别,执行顺序

    说在前面 SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称 ...

  4. spring 基于XML的申明式AspectJ通知的执行顺序

    spring 基于XML的申明式AspectJ通知的执行顺序 关于各种通知的执行顺序,结论:与配置文件中的申明顺序有关 1. XML文件配置说明 图片来源:<Java EE企业级应用开发教程&g ...

  5. MySQL 学习笔记(17)— SQL 执行顺序

    以查询语句为例,我们看下面的查询语句: (6)SELECT [DISTINCT | ALL] col1, col2, agg_func(col3) AS alias (1) FROM t1 JOIN ...

  6. ASP.NET 2.0中Page事件的执行顺序

    Page 执行中将按照如下顺序激活事件: Page.PreInit Page.Init Page.InitComplite Page.PreLoad Page.Load Page.LoadComple ...

  7. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序

    『前端碎碎念』系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到. 我会查阅一些资料并可能加上自己的理解,来记录这些问题.更多文章请前往我的个人博客 ...

  8. java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

    2019独角兽企业重金招聘Python工程师标准>>> /* * 几大原则 * 一.静态成员变量(Static) * 1.静态成员变量为类变量,所有对象共享同一内存空间 * 2.静态 ...

  9. 谈谈C#中类成员的执行顺序.

    今天我们来谈谈C#中子类和父类中静态成员以及构造函数的执行顺序,这个地方向来是初学C#的人比较迷惑的地方,也是各大公司最喜欢拿来出面试题的地方. 下面我们分情况来分析. 1. 普通构造函数和静态构造函 ...

最新文章

  1. mysql 中limit 用法!!
  2. java jdbc datetime_Java JDBC 操作二进制数据、日期时间
  3. SAE下的Memcache使用方法
  4. SVD分解.潜语义分析.PythonCode
  5. web项目从Myeclipse迁移到idea的二三事
  6. 动态修改网页icon图标
  7. 深度学习————如何在Python中求解函数的解析表达式
  8. Invalid Gradle JDK configuration found_build.gradle里dependencies标签页的实现原理
  9. 实践解决跨域问题的三种方式剖析
  10. STORM的DRPC通讯
  11. jack编译报错的问题
  12. eclipse中项目已经启动,可是tomcat一直显示在启动中
  13. 用户画像及其应用案例分享
  14. 喜马拉雅.xm转化为.mp3格式
  15. FIAA固定资产【05资产购置】
  16. Redis并发竞争key的解决方案详解
  17. Android APP开发框架选择——JSBridge既个人心得和技巧
  18. js鼠标移动到某个元素上改变鼠标样式,如悬浮小手、禁用鼠标、等待...
  19. 德国战车7比1狂胜巴西
  20. vc使用hiredis的几个填坑动作

热门文章

  1. 手动选择显示_QGIS 二次开发笔记(2)——显示图层
  2. 十大垃圾专业 计算机,十大最好专业和最烂专业是什么
  3. centos7安装mysql6_2018年第四周-在centos7安装mysql6
  4. java resultset 为空,ResultSet为空的有关问题
  5. logincontroller.java_ucenter整合java项目,注册问题
  6. 好吧,又是两分钟看完一道投机取巧的算法题
  7. 三星WP7手机MANGO一分钟完美越狱
  8. [CocoaPods]常见问题
  9. 移植 uC/OS-III 到 STM32
  10. luogu1024 一元三次方程求解