美文网首页
ViewController小常识(控制器的生命周期)

ViewController小常识(控制器的生命周期)

作者: 爱吃鱼的小灰 | 来源:发表于2017-08-02 09:17 被阅读33次
    1、- (void)loadView
    {
    [super loadView];
    当访问UIViewController的view属性时,view如果此时是nil,
    那么VC会自动调用loadView方法来初始化一个UIView并赋值给view属性。
    此方法用在初始化关键view,需要注意的是,在view初始化之前,
    不能先调用view的getter方法,否则将导致死循环(除非先调用了[supper  loadView];)
    如果没有重载loadView方法,
    则UIViewController会从nib或StoryBoard中查找默认的loadView,
    默认的loadView会返回一个空白的UIView对象。
    }
    
    2、- (void)viewDidLoad {
    [super viewDidLoad];
    当VC的view对象载入内存后调用,
    用于对view进行额外的初始化操作,
    如按钮、Label之类的控件添加初始化
    }
    
    3、
    - (void)viewWillAppear:(BOOL)animated
    {
    在view即将添加到视图层级中(显示给用户)
    且任意显示动画切换之前调用(这个时候supperView还是nil)。
    这个方法中完成任何与视图显示相关的任务,
    例如改变视图方向、状态栏方向、视图显示样式等
    }
    
    4、- (void)viewDidAppear:(BOOL)animated
    {
    在view被添加到视图层级中,显示动画切换之后调用(这时view已经添加到supperView中)。
    在这个方法中执行视图显示相关附件任务,如果重载了这个方法,
    必须在方法中调用[supper viewDidAppear];
    }
    
    5、- (void)viewWillDisappear:(BOOL)animated
    {
    view即将从superView中移除且移除动画切换之前,此时还没有调用removeFromSuperview。
    }
    
    6、- (void)viewDidDisappear:(BOOL)animated
    {
    view从superView中移除,移除动画切换之后调用,此时已调用removeFromSuperview。
    }
    
    7、- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    内存泄漏警告
    }
    

    8、 viewWillUnload
    在VC的view对象从内存中释放之前调用,可以在view被释放前做一些资源清理操作。在iOS6.0开始就废弃了,该方法不再会调用
    9、 viewDidUnload
    在VC的view对象从内存中释放之后调用,可以在view被释放后做一些view相关的引用清理操作,此时view为nil。在iOS6.0开始就废弃了,该方法不再会调用

    相关文章

      网友评论

          本文标题:ViewController小常识(控制器的生命周期)

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