View的生命周期

当一个进入一个新viewController的时候,viewController的view的生命周期一般是这样的:

1.先判断内存是否有这个View

a.没有的话:生命周期为loadView->viewDidLoad->viewWillAppear->viewDidAppear->viewWillDisAppear->viewDidDisAppear

注:(1)loadView一半不需要重写,除非这个ViewController没有任何的nib与他关联,需要在loadView中创建view并赋给viewController的view

  (2)在viewDidAppear之后如果内存不足会直接进入didReceiveMemoryWarning->unloadView(现在该方法不允许重写),从内存中释放掉

b.有的话:生命周期为viewWillAppear->viewDidAppear->viewWillDisAppear->viewDidDisAppear

2.例如在UITabbarController和UINavigationController中(在不考虑内存警告的问题的情况下)

UITabbarController:切换页面时,只有第一次进入该页面的时候会从生命周期loadView开始,加载一次后就会在内存中,再次进入该页面的时候,就都是从viewWillAppear开始

UINavigationController:如果将A push进来,A是一个新页面内存中不存在所以从loadView开始,再push B进来,B也是同样的情况,将B pop出去,A已经存在于内存中所以直接从viewWillAppear开始,被pop的viewController已经从内存中释放,所以在进行push B操作还是从loadView开始。

时间: 2024-11-10 10:50:48

View的生命周期的相关文章

创建控制器、控制器加载view过程、控制器view的生命周期、多控制器

在介绍四大对象的那篇博客中,可以基本了解到程序启动的过程: main-->UIApplicationMain-->创建UIApplication的实例和app代理AppDelegate的实例并设置好代理--->在程序启动后,也就是启动画面显示之后, AppDelegate创建UIWindow(可以是自动创建的,也可以手动创建) 现在讨论的问题是,如何创建控制器并设置为UIWindow的根控制器,然后加载出控制器中的view并显示出来. 本文目录 1.创建控制器的三种方式 2.控制器的vi

Android View的生命周期详解

View生命周期相关方法: onFinishInflate() 当View中所有的子控件均被映射成xml后触发 onMeasure( int ,  int ) 确定所有子元素的大小 onLayout( boolean ,  int ,  int ,  int ,  int ) 当View分配所有的子元素的大小和位置时触发 onSizeChanged( int ,  int ,  int ,  int ) 当view的大小发生变化时触发 onDraw(Canvas) view渲染内容的细节 onK

在ViewController中View的生命周期

view的生命周期如下(按顺序) -(void)loadView 用代码初始化的时候,第一个调用该方法.可以在这里面addSubView. -(void)viewDidLoad 初始化时一些数据的设置setUp. -(void)viewWillAppear view 即将出现(每次view出现的时候都会调用) -(void)viewWillLayoutSubviews 初始化的时候,默认什么也不做.当view(包括subViews)的bounds发生变化的时候会调用,可以用来布局(Tip:此方法

View Controller 生命周期的各个方法的用法

View Controller 生命周期的各个方法的用法 (2012-07-14 15:09:07) 转载 ▼ 分类: ios 正文开始 - (void)awakeFromNib; 这个方法用的时候,outlet还没有连接起来,是view Controller刚从storyboard建的时候,没有完全建好,不过可能有一些事情要在这个方法里面完成,比如splitViewDelegate,需要在非常早期完成. - (void)viewDidLoad; 用这个的时候,ViewController已经完

View Controller 生命周期的各个方法的用法

loadView; This is where subclasses should create their custom view hierarchy if they aren't using a nib. Should never be called directly.这是当他们没有正在使用nib视图页面,子类将会创建自己的自定义视图层.绝不能直接调用. - (void)awakeFromNib; 这个方法用的时候,outlet还没有连接起来,是view Controller刚从storyb

iOS 控制器View的生命周期及相关函数

1.loadView 1.1 如果重写了控制器的loadView方法,则控制器的View按照loadView方法的描述去创建 - (void)loadView { self.view = [[UIView alloc]init]; self.view.backgroundColor = [UIColor redColor]; } 1.2 如果没重写控制器的loadView方法,则看有没有storyboard的,有的话,则按storyboard的描述创建view 加载storyboard的方法:

iOS:viewController 和 view 的生命周期

一.介绍: viwe和viewController的生命周期是最基本的知识,如果很好地理解它们的方法调用的执行顺序,就能很好地掌握代码优秀的风格.这篇博客写的不错:http://www.cnblogs.com/peaceWang/p/5346726.html,有时间我会在此基础上完善,具体讲述一下每一个方法中最适合执行的操作. 控制器创建的生命周期 1. 如果从stroryBoard 中产生一个controller,那么会先调用initWithCoder:, awakeFromNib, load

View的生命周期方法:loadView、viewDidLoad、viewDidUnload的关系

标题中所说的方法,都是UIViewController的方法,跟UIViewController的view属性的生命周期息息相关 loadView方法 1. 什么时候被调用: 每次访问UIViewController的view(比如controller.view.self.view)而且view为nil,loadView方法就会被调用 2. 作用: loadView方法是用来负责创建UIViewController的view 3. 默认实现什么:(即[super loadView]里面做了什么事

android中view的生命周期

请参见:http://ndquangr.blogspot.jp/2013/04/android-view-lifecycle.html Category Methods Description Creation Constructors There is a form of the constructor that are called when the view is created from code and a form that is called when the view is in