zoukankan      html  css  js  c++  java
  • iOS UIViewController生命周期控制

    具体流程,看下图:

      

    init方法
    在init方法中实例化必要的对象(遵从LazyLoad思想)
    init方法中初始化ViewController本身

    loadView方法
    当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。
    如果手工维护views,必须重写该方法。
    如果使用IB维护views,必须不能重写该方法。
    loadView和IB构建view

    viewDidLoad方法
    重写该方法以进一步定制view。
    viewDidLoad后调用数据Model。

    viewDidUnload方法
    当系统内存吃紧的时候会调用该方法(注:viewController没有被dealloc)。
    内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式。
    在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)。
    在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等。
    release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)。
    一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行。
    viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象。

    dealloc方法
    viewDidUnload和dealloc方法没有关联,dealloc还是继续做它该做的事情。

  • 相关阅读:
    jQuery
    jQuery
    jQuery Callback 函数
    怎样提高团队管理能力4
    poj 3461 Oulipo(KMP模板题)
    每日一小练——按字典顺序列出全部排列
    Java数据结构与算法之排序
    China Vis 2015 会议小结
    网络基础知识小小说
    NS3网络仿真(7): Wifi节点
  • 原文地址:https://www.cnblogs.com/jys509/p/5225612.html
Copyright © 2011-2022 走看看