OC学习20:UIViewController生命周期
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.