//控制器声明周期
//最先执行的方法,控制器关联的有Nib文件的时候,该方法会从Nib文件加载view。
-(void)loadView{
[super loadView];
NSLog(@"%s", __FUNCTION__);
}
//该方法可以用来可以用来初始化控件、也可进行异步的网络请求,该方法在页面出来之前调用,方法在执行结束后,页面才会出现。因此该方法里面不能用来执行耗时的主线程操作。该方法在控制器的整个生命周期中只会调用一次。
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%s", __FUNCTION__);
self.view.backgroundColor = [UIColor redColor];
}
//该方法在页面每次出现之前调用,所以该方法可能会调用多次。
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSLog(@"%s", __FUNCTION__);
}
//该方法在将要布局子控件的时候调用,每次当视图的bounds改变时将会调用。
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
NSLog(@"%s", __FUNCTION__);
}
//该方法在子控件布局完成后调用
-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
NSLog(@"%s", __FUNCTION__);
}
//该方法在页面显示完成之后条用,有一些需要再页面展示出来后执行的代码可以放在该方法中。
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSLog(@"%s", __FUNCTION__);
}
//该方法在页面即将消失的时候调用,有时候一些通知的移除等操作可以在这个方法里面执行
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
NSLog(@"%s", __FUNCTION__);
}
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
}
//收到内存警告时调用该方法,可用来执行释放资源、内存等
-(void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];
NSLog(@"%s", __FUNCTION__);
}
@end
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ** 你可以把程序载入后执行的代码,写在程序完成加载的方法里面,这是最常用的一个方法
print("1111>>>>>>>>>>>>>>>>>>>>>> -- didFinishLaunchingWithOptions")
return true
}
func applicationWillResignActive(_ application: UIApplication) {
//当应用程序即将从活动状态转移到非活动状态时发送。这可以发生在某些类型的临时中断(例如来电或SMS消息)或当用户退出应用程序并开始转换到后台状态时。
//使用此方法暂停正在进行的任务,禁用定时器,并使图形呈现回调无效。游戏应该用这个方法暂停游戏。
// **当程序进入到非活动状态时,调用此方法,在此期间,程序不会接受消息和事件
print("3333333333>>>>>>>>>>>>>>>>>>>>>> -- applicationWillResignActive")
}
func applicationDidEnterBackground(_ application: UIApplication) {
//使用此方法释放共享资源,保存用户数据,使定时器失效,并存储足够的应用程序状态信息,以便在以后终止应用程序时将应用程序恢复到当前状态。
//如果应用程序支持后台执行,则当用户退出时调用此方法而不是applicationWillTerminate。
// **当程序被推到后台时,调用户此方法,如果要设置后台继续某些动作,则在这个方法里添加代码即可
print("444444444>>>>>>>>>>>>>>>>>>>>>> -- applicationDidEnterBackground")
}
func applicationWillEnterForeground(_ application: UIApplication) {
//作为从后台到活动状态的转换的一部分调用;在这里可以撤消在进入后台时所做的许多更改。
// **当程序从后台,将要重新回到前台的时候,调用此方法
print("555555555>>>>>>>>>>>>>>>>>>>>>> -- applicationWillEnterForeground")
}
func applicationDidBecomeActive(_ application: UIApplication) {
//重新启动的任何任务,是paused(或没有开始应用),当这是不活动的。如果我此前的应用背景,optionally refresh的用户界面。
// ***当程序进入活动状态的时候调用此方法
print("222222222>>>>>>>>>>>>>>>>>>>>>> -- applicationDidBecomeActive")
}
func applicationWillTerminate(_ application: UIApplication) {
//当应用程序即将终止时调用。保存数据,如果合适的话。参见ApdioDestEntudio背景:
// **当程序退出时调用此方法,通常用来保存数据,和一些推出前的清理工作
print("6666666>>>>>>>>>>>>>>>>>>>>>> -- applicationWillTerminate")
}
//当应用程序启动时执行,应用程序启动入口,只在应用程序启动时执行一次。若用户直接启动,lauchOptions内无数据,若通过其他方式启动,lauchOptions包含对应方式的内容。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"iOS_didFinishLaunchingWithOptions");
return YES;
}
//最后清除角标(进入后台)
//在应用程序已进入后台程序时,要执行的委托调用
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"iOS_applicationDidEnterBackground");
}
//(即将进入前台)
//在应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"iOS_applicationWillEnterForeground");
}
//手机即将切换状态(即将进入后台)
//在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"iOS_applicationWillResignActive");
}
//从切换状态回到前台(回到前台)
//在应用程序已被激活后,要执行的委托调用,刚好与applicationDidEnterBackground 方法相对应。
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"iOS_applicationDidBecomeActive");
}
/** 程序被杀死
在应用程序要完全推出的时候,要执行的委托调用,这个需要要设置UIApplicationExitsOnSuspend的键值。
*/
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"iOS_applicationWillTerminate");
}