zoukankan      html  css  js  c++  java
  • loadView,viewDidLoad等几种方法的调用总结

    viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用viewDidLoad用于初始化,加载时用到的。 
    loadView 此方法在控制器的view为nil的时候被调用。虽然经常说loadView是使用代码生成视图的时候,当视图第一次载入的时候调用的方法。用于使用(写)代码来实现控件。 用于使用代码生成控件的函数。但是经过自己实际断点单步操作发现,不管用不用nib,都最先调用loadView,所以说loadView 此方法在控制器的view为nil的时候就会被调用。一般在使用nib后就会把loadView注释掉。Xcode4.2创建的时候就给注释好了。

    当手写代码时一定注意分配UIView.自己经常用的有两种方法,如下:

    复制代码
    - ( void ) loadView { 
    UIView *view = [ [ UIView alloc] initWithFrame:[ UIScreen
    mainScreen] .applicationFrame] ;
    self.view = view;
    [ view release] ;
    }

    - ( void ) loadView {
    [super loadView];
    }
    复制代码

    但是第二种方法[super loadView]方法不被提倡,也不是苹果所希望的,就自己的几个小项目来看,就有一次使用第二种方法崩了,第一种就可以,所以还是方法一比较保险。就是你的loadView中应该有self.view = …这样的行为。

    viewDidUnload方法‍
    当系统内存吃紧的时候会调用该方法,一般在这个类中添加的代码是赋空代码,网上的解释是这样的:

    在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)

    一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行

    viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象

    viewWillAppear:方法更新准备显示的视图的信息。调用时,视图可能还没有被加载。
    使用viewDidAppear:来触发视图完全显示在屏幕上之后的行为,例如任何动画。

    这两个方法是每当切换到view时就调用。

  • 相关阅读:
    解决一切日期问题的日期类
    汉诺塔类型问题解析
    窗口滑动
    大暑假集训总结(反思)
    找硬币题解
    Fiolki题解
    大逃亡题解
    Luogu6080 [USACO05DEC]Cow Patterns G
    Luogu3193 HNOI2008 GT考试
    Codeforces1355F Guess Divisors Count
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/5007491.html
Copyright © 2011-2022 走看看