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时就调用。

  • 相关阅读:
    let与const的区别
    IOS客户端UIwebview下web页面闪屏问题
    移动端click事件延迟300ms问题
    css3+visbibilty解决淡入淡出问题
    git学习之branch分支
    git学习之冲突解决办法
    webpack+vue-cli项目打包技巧
    一个高级PHP工程师所应该具备的
    多站点
    PHP error_reporting() 错误控制函数功能详解
  • 原文地址:https://www.cnblogs.com/superhappy/p/2340199.html
Copyright © 2011-2022 走看看