iOS APP的AppDelegate理解
阿新 • • 發佈:2020-06-29
建立應用程式之後之後,預設有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
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
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。