UIView的生命周期

5.视图控制器的生命周期函数

 

- (void)dealloc{

    NSLog(@"Root Dealloc");

    [super dealloc];

}

//创建 视图控制器 调用init 函数的时候会自动调用

//initWithNibName函数 最好不要写self.view的操作

 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

        NSLog(@"root_initWithNibName");

    }

    return self;

}

 

//加载视图控制器视图view

#pragma mark - loadView

- (void)loadView {

    [super loadView];

    NSLog(@"root_loadView");

}

 

//在执行viewDidLoad 的时候  视图view已经存在了

 

//实现两个视图控制器之间的切换

- (void)viewDidLoad

{

    NSLog(@"root_viewDidLoad");

    [super viewDidLoad];//一般第一句先调用父类的

    // Do any additional setup after loading the view.

    

    self.view.backgroundColor = [UIColor redColor];

    [self creatButtons];

    

}

#pragma mark - 当视图控制器视图将要显示在屏幕上的时候调用

- (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

     NSLog(@"root_viewWillAppear");

}

#pragma mark - 当视图控制器的视图已经显示在屏幕上的时候调用

- (void)viewDidAppear:(BOOL)animated{

    _isFront = YES;

    [super viewDidAppear:animated];

    NSLog(@"root_viewDidAppear");

}

#pragma mark -当视图控制器的视图将要离开屏幕的时候调用

- (void)viewWillDisappear:(BOOL)animated{

    [super viewWillDisappear:animated];

    NSLog(@"Root_viewWillDisappear");

}

#pragma mark -当视图控制器的视图已经离开屏幕的时候调用

- (void)viewDidDisappear:(BOOL)animated{

    _isFront = NO;

    [super viewDidDisappear:animated];

    NSLog(@"Root_viewDidDisappear");

}

#pragma mark 将要布局子视图的时候调用

- (void)viewWillLayoutSubviews{

    [super viewWillLayoutSubviews];

    NSLog(@"root_将要布局子视图");

}

#pragma mark 已经布局子视图的时候调用

- (void)viewDidLayoutSubviews{

    [super viewDidLayoutSubviews];

    NSLog(@"root_已经布局子视图");

}

 

#pragma mark - 发生低内存警告的时候调用

- (void)didReceiveMemoryWarning

{

    NSLog(@"root_低内存警告");

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    //当发生低内存警告的时候 如果当前界面没有显示在屏幕上 那么我们一般会把 view release  并把view 置为nil

    

    if (_isFront == NO) {

         self.view = nil;

        //一旦  view release 并且置为nil 之后下次再显示这个界面的时候 又会重新加载视图 loadView 开始

    }

    //当出现了 低内存警告 那么一般会把 不显示的view 给释放掉

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值