美文网首页iOS开发iOS开发
iOS视图控制器的生命周期&程序执行顺序

iOS视图控制器的生命周期&程序执行顺序

作者: 孟熠冉的简书 | 来源:发表于2017-06-06 15:44 被阅读23次

    当一个视图控制器被创建,并在屏幕上显示的时候, 代码的执行顺序:

    1. alloc
      创建对象,分配空间
    2. init (initWithNibName)
      初始化对象,初始化数据
    3. loadView
      从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
    4. viewDidLoad
      载入完成,可以进行自定义数据以及动态创建其他控件
    5. viewWillAppear
      视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
    6. viewDidAppear
      视图已在屏幕上渲染完成

    当一个视图被移除屏幕并且销毁的时候的执行顺序:

    1. viewWillDisappear
      视图将被从屏幕上移除之前执行
    2. viewDidDisappear
      视图已经被从屏幕上移除,用户看不到这个视图了
    3. dealloc
      视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放
    4. 关于viewDidUnload :在发生内存警告的时候如果本视图不是当前屏幕上正在显示的视图的话, viewDidUnload将会被执行,本视图的所有子视图将被销毁,以释放内存,此时开发者需要手动对viewLoad、viewDidLoad中创建的对象释放内存。 因为当这个视图再次显示在屏幕上的时候,viewLoad、viewDidLoad 再次被调用,以便再次构造视图。

    当我们创建一个UIViewController类的对象时,系统会生成几个默认的方法,这些方法的调用顺序如下:

    - (void)viewDidLoad;
    
    - (void)viewDidUnload;
    
    - (void)viewWillAppear:(BOOL)animated;
    
    - (void)viewDidAppear:(BOOL)animated;
    
    - (void)viewWillDisappear:(BOOL)animated;
    
    - (void)viewDidDisappear:(BOOL)animated;
    

    相关文章

      网友评论

        本文标题:iOS视图控制器的生命周期&程序执行顺序

        本文链接:https://www.haomeiwen.com/subject/rqdgfxtx.html