OC学习20:UIViewController生命周期

张建 lol

UIViewController生命周期相关方法

    • (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;

非storyBoard(xib或非xib)都走这个方法

    • (instancetype)initWithCoder:(NSCoder *)aDecoder;

如果连接了串联图storyBoard 走这个方法

    • (void)awakeFromNib;

xib 加载 完成

  • +(void)load

load 在代码加载的时候,对象还没有被初始化的时候就已经调⽤了,可以⽤
来做⼀些全局的swizzle,只调⽤⼀次

  • +(void)initialize

类的初始化方法

  • -(instancetype)init

对象初始化方法

  • -(void)loadView

加载视图:当访问UIViewController的view属性时,view如果此时是nil,那么VC会自动调用loadView方法来初始化一个UIView并赋值给view属性。此方法用在初始化关键view,需要注意的是,在view初始化之前,不能先调用view的getter方法,否则将导致死循环(除非先调用了[super loadView];)如果没有重载loadView方法,则UIViewController会从nib或StoryBoard中查找默认的loadView,默认的loadView会返回一个空白的UIView对象。

  • -(void)viewDidLoad

视图加载完成

  • -(void)viewWillAppear:(BOOL)animated

将要展示:在view即将添加到视图层级中(显示给用户)且任意显示动画切换之前调用,此时self.view.superview为nil.这个方法中完成任何与试图显示相关的任务,例如改变视图方向、状态栏方向、视图显示样式等。

  • -(void)viewWillLayoutSubviews

将要布局子视图,self.view.superview为_UIParallaxDimmingView

  • -(void)viewDidLayoutSubviews

已经布局子视图

  • -(void)viewDidAppear:(BOOL)animated

已经展示:在view被添加到视图层级中,显示动画切换之后调用(这时view已经添加到supperView中)。在这个方法中执行视图显示相关附件任务,如果重载了这个方法,必须在方法中调用[supper viewDidAppear];,此时self.view.superview为UIViewControllerWrapperView。

  • -(void)viewWillDisappear:(BOOL)animated

将要消失:view即将从supperView中移除,移除动画切换之后调用,此时已调用removeFromSuperview。此时self.view.superview还是superview为UIViewControllerWrapperView.

  • -(void)viewDidDisappear:(BOOL)animated

已经消失:view从superView中移除,移除动画切换之后调用,此时已调用removeFromSuperview。此时self.view.superview还是superview为nil.

  • -(void)dideMemoryWarning

内存警告

  • -(void)dealloc

销毁释放

声明周期

-[ViewController initWithCoder:]
-[ViewController awakeFromNib]
-[ViewController loadView]
-[ViewController viewDidLoad]
-[ViewController viewWillAppear:]
-[ViewController viewWillLayoutSubviews]
-[ViewController viewDidLayoutSubviews]
-[ViewController viewDidAppear:]
-[ViewController viewWillDisappear:]
-[ViewController viewDidDisappear:]
-[ViewController dealloc]
-[ViewController didReceiveMemoryWarning]

  • Post title:OC学习20:UIViewController生命周期
  • Post author:张建
  • Create time:2023-03-10 05:15:32
  • Post link:https://redefine.ohevan.com/2023/03/10/OC/OC学习20:UIViewController生命周期/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
OC学习20:UIViewController生命周期