您的位置:首页 > 产品设计 > UI/UE

UIViewController 生命周期

2015-06-14 13:38 369 查看
// 视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
- (void)viewWillAppear:(BOOL)animated{

NSLog(@"LifeViewController--viewWillAppear--每次显示都被调用,在视图切换的时候,需要修改一些数据的时候,常常调用");
}

// 视图已在屏幕上渲染完成
- (void)viewDidAppear:(BOOL)animated{

NSLog(@"LifeViewController--viewDidAppear--视图已经完成,每次都调用");
}

// 视图将要被销毁的时候
- (void)viewWillDisappear:(BOOL)animated{

NSLog(@"LifeViewController--viewWillDisappear---将要销毁时候调用,不回每次调用");
}

// 视图已经被摧毁
- (void)viewDidDisappear:(BOOL)animated{

NSLog(@"LifeViewController--viewDidDisappear---销毁时候调用,可能根据业务可以保存一些数据,用于下次恢复");
}

// 视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放
- (void)dealloc{
NSLog(@"LifeViewController--dealloc----创建的对象进行释放");
}


在UIViewController进行跳转中, 其中A跳到B,相互对应的分别也就是

ViewController---viewWillDisappear---将要销毁时候调用,每次调用
2015-06-14 13:37:38.425 AppUI组件学习[2144:94396] LifeViewController--viewWillAppear--每次显示都被调用,在视图切换的时候,需要修改一些数据的时候,常常调用
2015-06-14 13:37:38.927 AppUI组件学习[2144:94396] LifeViewController--viewDidAppear--视图已经完成,每次都调用
2015-06-14 13:37:38.928 AppUI组件学习[2144:94396] ViewController---viewDidDisappear---销毁时候调用,可能根据业务可以保存一些数据,用于下次恢复

其中需要注意的是只有

self.window.rootViewController  这个controller只会初始化一次的,viewDidLoad方法只会调用一次,

我这里使用的是:

[self
dismissViewControllerAnimated:true
completion:^{

         
    }];  这种销毁形式, 每一次的跳转Controller都会重新创建。 如果是栈的形式,只会执行一次。(在内存中,并没有销毁)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息