zoukankan      html  css  js  c++  java
  • iOS APP的AppDelegate理解

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

    1、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    

    2、【全局变量】 AppDelegate可以在整个应用程序中调用,可以使用代码段获取AppDelegate的全局变量:

    AppDelegate *appDelegate=[[UIApplication sharedApplication]delegate];//因此可以在AppDelegate.h中定义需要全局使用的变量。  
    3、系统启动代理(第一个页面的加载: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类文件,是整个应用最开始的入口。 执行的代码段为:

    #import <UIKit/UIKit.h>
    #import "AppDelegate.h"
    
    int main(int argc, char * argv[]) {
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }
    最后一个参数即为应用中的AppDelegate类的实例,执行这段程序即进入AppDelegate类中的applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法接口。


    作者:达_Ambition
    链接:https://www.jianshu.com/p/e4c2dd2afbc9
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Vue项目里添加特殊字体或 某些字体乱码的问题
    Vue 事件修饰符
    js 判断是什么浏览器、是否为谷歌浏览器
    Vue 打印预览功能
    Vue v-if与v-show的区别
    js 下载文件/导出
    使用Mysql Workbench 导入数据库提示 ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for
    java 使用注释校验数据有效性
    java poi分批次导入Excel
    浅谈java中源码常见的几个关键字(native,strictfp,transient,volatile)
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/13206439.html
Copyright © 2011-2022 走看看