ios之APP的AppDelegate理解

创建应用程序之后之后,默认有AppDelegate.h文件与AppDelegate.m文件。  
AppDelegate为整个应用的一个代理,提供程序启动、退出等类似监控的接口。  

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

/* 应用程序启动后,要执行的委托调用,系统启动代理(第一个页面的加载)*/
(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions  
 
/* 应用程序将要由活动状态切换到非活动状态时执行的委托调用,如按下home 按钮,返回主屏幕,或全屏之间切换应用程序等。* /
(void) applicationWillResignActive:(UIApplication*)application
 
/* 在应用程序已进入后台程序时,要执行的委托调用。所以要设置后台继续运行,则在这个函数里面设置即可。*/
(void) applicationDidEnterBackground:(UIApplication*)application  
 
/* 在应用程序将要进入前台时(被激活),要执行的委托调用,与applicationWillResignActive方法相对应。  */
(void) applicationWillEnterForeground:(UIApplication*)application
 
/* 在应用程序已被激活后,要执行的委托调用,刚好与  applicationDidEnterBackground 方法相对应。*/
(void) applicationDidBecomeActive:(UIApplication*)application  
 
/* 在应用程序要完全退出的时候,要执行的委托调用。*/
(void) 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;    
补充:应用创建之后可以在Supporting Files分组中看到main.m类文件,是整个应用最开始的入口。 执行的代码段为:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

最后一个参数即为应用中的AppDelegate类的实例,执行这段程序即进入AppDelegate类中的applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions  方法接口。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值