*UIViewController的生命周期*

UIViewController的生命周期有这么几个阶段:


1:创建UIViewController对象调用的方法。即初始化调用--  -(instancetype)init;只调用一次

2:加载视图 -- -loadView();如果我们想要实现从创建一个视图控制器开始,就能有一个自已定制的视图,那么可以在这个方法里加载上。只调用一次

3:加载视图完成执行的方法   - (void)viewDidLoad;只调用一次


注:loadViewviewDidLoad,是当一个UIViewController在调用一个视图的时候,才会开始先调用laodView然后调用ViewDidLoad。但不用UIViewController的视图时候,是不会调用这个两个方法的。


4:视图将要显示到界面了,(Appear是人眼可见的,比如在一个视图控制器上,先隐藏,在显示)多次调用

     -(void)viewWillAppear:(BOOL)animated;

5:视图显示到界面 多次调用

   -(void)viewDidAppear:(BOOL)animated

6:视图将要消失了(指的是人眼上得消失) 多次调用

   -(void)viewWillDisappear:(BOOL)animated;

7:视图已经消失了 多次调用

    -(void)viewDidDisappear:(BOOL)animated


注:从4--7 都是视图控制器中对于View的生命周期。


8:内存不够时,会调用此方法,但是是在这个视图控制器存活,但是没有显示在用户可见的界面上,才会调用此方法。

  - ( void)didReceiveMemoryWarning

9: 当ViewController 对象被销毁的时候,调用这个方法,和 C++ 中得析构函数是一样的,和 java 中得 dealloc 一样  
    -( void)dealloc;

代码:

#import "AZRootViewController.h"

@interface AZRootViewController ()

@end

@implementation AZRootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}


//UIViewController的生命周期


//重写父类方法,开始初始化,但是我们一般不会重写这个方法
-(instancetype)init
{
    if (self=[super init]) {
        
    }
    return  self;
}




//重写父类方法,加载视图,但是我们一般不会重写这个方法
-(void)loadView
{
    [super loadView];//使用父类,既默认的UIViewController的视图,
    
    //一般不用重写这个方法,但是偶尔我们想要实现从创建一个视图控制器开始,就能有一个自已定制的视图,那么可以在这里加载上
    UIView *view=[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    view.backgroundColor=[UIColor blueColor];
    self.view=view;
}
//视图已经加载完成后要执行的方法
- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor yellowColor];
}

//loadView和viewDidLoad,是当一个UIViewController在调用一个视图的时候,才会开始先调用laodView然后调用ViewDidLoad。但不用UIViewController的视图时候,是不会调用这个两个方法的。


//重写父类方法,视图将要显示到界面了,(Appear是人眼可见的,比如在一个视图控制器上,先隐藏,在显示)
-(void)viewWillAppear:(BOOL)animated
{
    
}
//重写父类方法,视图显示到界面了
-(void)viewDidAppear:(BOOL)animated
{
    
}
//重写父类方法,视图将要消失了(指的是人眼上得消失)
-(void)viewWillDisappear:(BOOL)animated
{
    
}
//重写父类方法,视图已经消失了
-(void)viewDidDisappear:(BOOL)animated
{
    
}

//内存不够时,会调用此方法,但是是在这个视图控制器存活,但是没有显示在用户可见的界面上,才会调用此方法。
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    //一般可以进行释放内存,就是可以尽力的做一些挽救内存,
}

//当对象被销毁的时候,调用这个方法,和C++中得析构函数是一样的,和java中得dealloc一样 
-(void)dealloc
{
    [super dealloc];
}

@end



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值