View & Controller 一些方法的执行顺序

一、   加载视图

  init-初始化程序

viewDidLoad-加载视图

viewWillAppear-UIViewController对象的视图即将加入窗口时调用;

viewDidApper-UIViewController对象的视图已经加入到窗口时调用;

viewWillDisappear-UIViewController对象的视图即将消失、被覆盖或是隐藏时调用;

viewDidDisappear-UIViewController对象的视图已经消失、被覆盖或是隐藏时调用;

Received simulated memory warning.

viewVillUnload-当内存过低时,需要释放一些不需要使用的视图时,即将释放时调用;

viewDidUnload-当内存过低,释放一些不需要的视图时调用。

二、初始化

controller

1.init:init--initWithNibName:bundle:--loadView--viewDidLoad

2.initWithNibName:initWithNibName:bundle:--loadView--viewDidLoad

也可用init,前提是你的控制器不能重写loadView方法

3.storyboardWithName:initWithCoder:--awakeFromNib--loadView(这个方法结束时 控制器的View的子控件才创建)--viewDidLoad

view

1.init:init--initWithFrame:(是init调用了initWithFrame:)

2.loadNibNamed:initWithCoder:(这个时候子控件没有被创建)--awakeFromNib(这个时候子控件创建完毕, 一般会在这里进一步对View进行初始化)

参考:

http://blog.sina.com.cn/s/blog_5da93c8f0101q3f6.html

http://www.jianshu.com/p/b1352b483d85

时间: 2024-12-31 08:45:26

View & Controller 一些方法的执行顺序的相关文章

Junit4学习笔记--方法的执行顺序

package com.lt.Demo.TestDemo; import java.util.Arrays; import java.util.Collection; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; im

静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序

静态代码块: 是在当类被载入(内存)时,(最先被调用的),静态代码块被执行,且之被执行一次,静态块常用来执行类属性的初始化.执行类的载入之前就会调用. 非静态代码块: 是在当类的对象被创建载入(内存)时,(最先被调用的),每创建一个对象,即每载入一个对象,非静态代码块都执行一次.执行类对象的载入之前就会调用. 对象载入之前,一定要是类先被载入. 静态方法.非静态方法:都是调用时,才执行的.静态方法属于类的,加载完类就可以调用静态方法:非静态方法是属于对象的,加载完对象就可以调用非静态方法. 加载

在Spring Bean的生命周期中各方法的执行顺序

Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下十种: 通过实现 InitializingBean 接口来定制初始化之后的操作方法: 通过实现DisposableBean 接口来定制销毁之前的操作方法: 通过元素的 init-method属性指定初始化之后调用的操作方法: 通过元素的 destroy-method属性指定销毁之前调用的操作方法: 在指定方法上加上 @PostConstruct

控制器一些方法的执行顺序的测试

执行顺序如下: 2015-11-18 10:37:40.877 Test-All[6252:69490] viewWillAppear:2015-11-18 10:37:40.882 Test-All[6252:69490] viewWillLayoutSubviews(默认会执行一次)2015-11-18 10:37:40.882 Test-All[6252:69490] viewDidLayoutSubviews(默认会执行一次)2015-11-18 10:37:40.883 Test-Al

子类继承父类,方法的执行顺序

public class HelloA { static { System.out.println("static A"); } { System.out.println("I'm A class"); } public HelloA() { System.out.println("HelloA"); } } class HelloB extends HelloA { static { System.out.println("stati

Python- discover()方法与执行顺序补充

可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰 但通过addTest()添加.删除测试用例就变得非常麻烦 TestLoader 类中提供的discover()方法可以自动识别测试用例 discover(start_dir,pattern='test*.py',top_level_dir= None) 找到指定目录下所有测试模块,并可递归查到子目录下的测试模块,只有匹配到文件名时才加载 start

结合IL和Windbg来看.Net调用继承虚方法的执行顺序

先上测试代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestVirt { class Program { static void Main(string[] args) { A c1 = new C(); c1.Foo(); C c2 = new C(); c2.Foo(); Con

unittest执行顺序,使用unittest.main()按照test开头,由0-9,A-Z,a-z的顺序执行; 可使用TestSuite类的addTest方法改变执行顺序;

import unittestclass Study(unittest.TestCase): # def setUp(self): # print('start') # def tearDown(self): # print('end') def test_login(self): print('login') def test_draft(self): print('draft') def test_logout(self): print('logout') def xixi(self): #

ASP.NET MVC ActionFilterAttribute的执行顺序

http://diaosbook.com/Post/2014/6/3/execution-order-of-actionfilter-aspnet-mvc ASP.NET MVC里面我们要自定义ActionFilter的时候会发现有4个方法可以override:OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted.他们分别在什么时候执行一直是困扰人类的一个问题.我代表人类做了一个简单的实验: 首先自定义一个Ac