iOS開發之UIApplication – iPhone手機開發技術文章 iPhone軟體開發教學課程

1. 什麼是UIApplication?                                                                                                                           

 

a) UIApplication對象是應用程序的象征

 

b) 每一個應用都有自己的UIApplication對象,而且是單例的

 

c) 通過[UIApplication sharedApplication]可以獲得這個單例對象

 

d) 一個iOS程序啟動後創建的第一個對象就是UIApplication對象

 

e) 利用UIApplication對象,能進行一些應用級別的操作

 

2. UIApplication的常用屬性

 

a) 設置應用程序圖標右上角的紅色提醒數字

 

@property(nonatomic) NSInteger applicationIconBadgeNumber;

 

wps_clip_image-30364

 

b) 設置聯網指示器的可見性

 

@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

 

wps_clip_image-29374

 

2. iOS7中的狀態欄                                                                                                                                     

 

從iOS7開始,系統提供瞭2種管理狀態欄的方式

 

a) 通過UIViewController管理(每一個UIViewController都可以擁有自己不同的狀態欄)

 

b) 通過UIApplication管理(一個應用程序的狀態欄都由它統一管理)

 

在iOS7中,默認情況下,狀態欄都是由UIViewController管理的,UIViewController實現下列方法就可以輕松管理狀態欄的可見性和樣式

 

a) 狀態欄的樣式

 

(UIStatusBarStyle)preferredStatusBarStyle;

 

b) 狀態欄的可見性

 

– (BOOL)prefersStatusBarHidden;

 

如果想利用UIApplication來管理狀態欄,首先得修改Info.plist的設置

 

wps_clip_image-4771

 

3. openURL:                                                                                                                                            

 

UIApplication有個功能十分強大的openURL:方法

 

– (BOOL)openURL:(NSURL*)url;

 

openURL:方法的部分功能有

 

a) 打電話

 

UIApplication *app = [UIApplication sharedApplication];

 

[app openURL:[NSURL URLWithString:@"tel://10086"]];

 

b) 發短信

 

[app openURL:[NSURL URLWithString:@"sms://10086"]];

 

c) 發郵件

 

[app openURL:[NSURLURLWithString:@"mailto://12345@qq.com"]];

 

d) 打開一個網頁資源

 

[app openURL:[NSURL URLWithString:@"https://ios.itcast.cn"]];

 

e) 打開其他app程序

 

4. UIApplication和delegate                                                                                                                       

 

所有的移動操作系統都有個致命的缺點:app很容易受到打擾。比如一個來電或者鎖屏會導致app進入後臺甚至被終止

 

還有很多其它類似的情況會導致app受到幹擾,在app受到幹擾時,會產生一些系統事件,這時UIApplication會通知它的delegate對象,讓delegate代理來處理這些系統事件

 

delegate可處理的事件包括:

 

應用程序的生命周期事件(如程序啟動和關閉)

 

系統事件(如來電)

發佈留言