創(chuàng)建應用程序之后之后玷坠,默認有AppDelegate.h文件與AppDelegate.m文件笆焰。
AppDelegate為何物壳贪?
AppDelegate為整個應用的一個代理祖凫,提供程序啟動、退出等類似監(jiān)控的接口蜕着。
AppDelegate.m
接口所在的文件谋竖,常見接口有:
application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions//應用程序啟動后,要執(zhí)行的委托調用
applicationWillResignActive:(UIApplication *)application//應用程序將要由活動狀態(tài)切換到非活動狀態(tài)時執(zhí)行的委托調用承匣,如按下home 按鈕蓖乘,返回主屏幕,或全屏之間切換應用程序等韧骗。
applicationDidEnterBackground:(UIApplication *)application//在應用程序已進入后臺程序時嘉抒,要執(zhí)行的委托調用。所以要設置后臺繼續(xù)運行袍暴,則在這個函數(shù)里面設置即可些侍。
applicationWillEnterForeground:(UIApplication *)application//在應用程序將要進入前臺時(被激活),要執(zhí)行的委托調用政模,與applicationWillResignActive 方法相對應岗宣。
applicationDidBecomeActive:(UIApplication *)application//在應用程序已被激活后,要執(zhí)行的委托調用淋样,剛好與? applicationDidEnterBackground 方法相對應耗式。
applicationWillTerminate:(UIApplication *)application//在應用程序要完全退出的時候,要執(zhí)行的委托調用。
全局變量
AppDelegate可以在整個應用程序中調用纽什,在其他頁面中可以使用代碼段獲取AppDelegate的全局變量:AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
因此可以在AppDelegate.h中定義需要全局使用的變量措嵌。
系統(tǒng)啟動代理(第一個頁面的加載)
application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
一般在該代理接口中需要進行應用系統(tǒng)window(程序顯示窗口)配置,完成頁面彈出效果芦缰。(AppDelegate默認擁有UIWindow *window實例變量)
可以使用以下代碼段完成:
self.window?=?[[UIWindow?alloc]?initWithFrame:[[UIScreen?mainScreen]?bounds]];//顯示窗口配置
LoginViewController?*login?=?[[LoginViewController?alloc]?initWithNibName:@"LoginViewController"?bundle:nil];//初始化應用系統(tǒng)需要顯示的第一個頁面(一般為ViewController)
self.window.rootViewController?=?login;//配置window窗口的rootViewController實例
//判定系統(tǒng)版本企巢,選擇頁面加載方式
if?(?[[UIDevice?currentDevice].systemVersion?floatValue]?<?6.0)
{
[self.window?addSubview:login.view];
}
else
{
[self.window?setRootViewController:login];
}
[self.window?makeKeyAndVisible];
return?YES;
結語:AppDelegate的使用還有很多,隨著應用程序的開發(fā)让蕾,我會繼續(xù)補充完善浪规。
補充:應用創(chuàng)建之后可以在Supporting Files分組中看到main.m類文件,是整個應用最開始的入口探孝。
執(zhí)行的代碼段為:return?UIApplicationMain(argc,?argv,?nil,?NSStringFromClass([AppDelegate?class]));最后一個參數(shù)即為應用中的AppDelegate類的實例笋婿,執(zhí)行這段程序即進入AppDelegate類中的application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions? 方法接口。