APP Delegate - APP生命周期

创建应用程序之后之后,默认有AppDelegate.h文件与AppDelegate.m文件。

AppDelegate为何物?

AppDelegate为整个应用的一个代理,提供程序启动、退出等类似监控的接口。

AppDelegate.m

接口所在的文件,常见接口有:

application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions//应用程序启动后,要执行的委托调用

applicationWillResignActive:(UIApplication *)application//应用程序将要由活动状态切换到非活动状态时执行的委托调用,如按下home 按钮,返回主屏幕,或全屏之间切换应用程序等。

applicationDidEnterBackground:(UIApplication *)application//在应用程序已进入后台程序时,要执行的委托调用。所以要设置后台继续运行,则在这个函数里面设置即可。

applicationWillEnterForeground:(UIApplication *)application//在应用程序将要进入前台时(被激活),要执行的委托调用,与applicationWillResignActive 方法相对应。

applicationDidBecomeActive:(UIApplication *)application//在应用程序已被激活后,要执行的委托调用,刚好与  applicationDidEnterBackground 方法相对应。

applicationWillTerminate:(UIApplication *)application//在应用程序要完全退出的时候,要执行的委托调用。

全局变量

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

因此可以在AppDelegate.h中定义需要全局使用的变量。

系统启动代理(第一个页面的加载)

application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

一般在该代理接口中需要进行应用系统window(程序显示窗口)配置,完成页面弹出效果。(AppDelegate默认拥有UIWindow *window实例变量)

可以使用以下代码段完成:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//显示窗口配置

LoginViewController *login = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];//初始化应用系统需要显示的第一个页面(一般为ViewController)

self.window.rootViewController = login;//配置window窗口的rootViewController实例

//判定系统版本,选择页面加载方式

if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)

{

[self.window addSubview:login.view];

}

else

{

[self.window setRootViewController:login];

}

[self.window makeKeyAndVisible];

return YES;

结语:AppDelegate的使用还有很多,随着应用程序的开发,我会继续补充完善。

补充:应用创建之后可以在Supporting Files分组中看到main.m类文件,是整个应用最开始的入口。

执行的代码段为:return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));最后一个参数即为应用中的AppDelegate类的实例,执行这段程序即进入AppDelegate类中的application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  方法接口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 6,571评论 1 8
  • 非原创,收集,整理,觉得有用就罗列下为避免下次犯迷糊。 IOS 中的 AppDelegate.m/h 文件是很重要...
    西蜀阅读 538评论 0 0
  • 毕业快一年了,可是,身上却没有多少钱。我想回家。逃到这么远,还是逃不开厦门的魔鬼日子。我告诉自己,来体验这里的生活...
    f9f1de48dc41阅读 164评论 0 0
  • 我给自己制定过很多目标,比如说健身,看书,学英语等等,可最终无一例外的都失败了。但工作以后,却惊奇的发现,公司的每...
    奔跑的二师兄阅读 788评论 0 2