Appdelegate和Windos内容的简单介绍

学习ios有一段时间了,但是对appdelegate中的那一堆方法一直都不是很清楚是干嘛用的,今天来认真的总结学习一下。

Window的创建:

iOS程序启动完毕后,先创建UIwindow,再创建控制器,创建控制器的view,然后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。UIWindow是一种特殊的UIView,它相当于一块画框,而UIView相当于里面的画布。通常在一个app中只会有一个UIWindow。

Appdelegate内代理方法的实现:

1.当应用程序启动时执行,应用程序启动入口。只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等

//程序启动完成调用此方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  //系统会自动创建一个window,此时可直接调用window.并在此处设置window的一些属性。
    //设置window的根目录
    ViewController *viewc = [[ViewController alloc]init];
    self.window.rootViewController = viewc;
    //这个是便捷方法,使被使用对象的主窗口显示到屏幕的最前端。也可以使用hiddenUIView方法隐藏这个窗口
    [self.window makeKeyAndVisible];
    return YES;
}

2.应用程序将要进入非活动状态,即将进入后台,在此期间,应用程序不接收消息或事件,比如来电话了等一些请求

- (void)applicationWillResignActive:(UIApplication *)application {
   
}

3.如果程序支持后台运行的话,当程序被推送到后台的时候调用。所以要设置后台继续运行,在这个方法里设置即可

- (void)applicationDidEnterBackground:(UIApplication *)application{

}

4.当程序从后台将要重新回到前台时候调用

- (void)applicationWillEnterForeground:(UIApplication *)applicatio{
    
}

5.应用程序已进入前台,处于活动状态

- (void)applicationDidBecomeActive:(UIApplication *)application {

}

6.程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。

- (void)applicationWillTerminate:(UIApplication *)application {
   
}

全局变量  
AppDelegate可以在整个应用程序中调用,在其他页面中可以使用代码段获取AppDelegate的全局变量:AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];  
因此可以在AppDelegate.h中定义需要全局使用的变量

原文地址:https://www.cnblogs.com/moxuexiaotong/p/4929024.html