- UIApplication對象是應用程序的象徵
- 每個應用都有自己的UIApplication對象,而且是單例的
- 通過[UIApplicationsharedApplication]獲得這個單例對象
- 一個iOS程序啓動後創建的第一個對象就是UIApplication對象
- 利用UIApplication對象,能進行一些應用級別的操作
1* 整個APP中只有一個UIApplication,不能通過[[UIApplicationalloc]init]創建對象,否則程序一運行就會報錯
錯誤信息如下(一般查看錯誤原因,看reason就好):
2* UIApplication對象屬於單例對象,一般情況下單例對象的方法都是以share單詞開頭
通過shareApplication方法返回的對象總是同一個.
打印對象,可以看到兩個指針變量都指向同一地址(對象).
3*設置appIcon提醒數字,必須註冊用戶通知
當我們不知道如何使用某個對象的時候,我們應該進入這個類的頭文件中查看該類具有的屬性以及方法,
進入UIApplication類,可以看到設置應用圖標提醒數的屬性
//set to 0 to hide. default is 0. In iOS 8.0and later, your application must register for user notifications using-[UIApplication registerUserNotificationSettings:] before being able to set theicon badge.
@property(nonatomic)NSIntegerapplicationIconBadgeNumber
//根據這個屬性的說明可知,當applicationIconBadgeNumber =0的時候默認隱藏,從iOS8.0開始,必須註冊用戶通知才能設置應用圖標提醒數字,否則是無法設置的
當只有app.applicationIconBadgeNumber = 10;這一行代碼時,模擬器顯示效果如圖,雖然設置數字爲10,依然無法顯示
當我們註冊之後,如下圖所示註冊方法
運行到模擬器中顯示的效果爲首先彈出選擇框,由用戶決定是否允許提醒,如果用戶選擇不允許,就不出出現提醒數字,當用戶選擇提醒,在以後使用軟件的過程中就可以收到提醒:
4*設置聯網狀態
// showingnetwork spinning gear in status bar. default is NO
@property(nonatomic,getter=isNetworkActivityIndicatorVisible)BOOLnetworkActivityIndicatorVisible;
由此可知,聯網狀態的顯示在狀態欄,而且默認是NO,即不顯示.如果需要顯示把屬性值改爲YES!
//設置聯網狀態
app.networkActivityIndicatorVisible = YES; 顯示效果如圖
5*設置狀態欄的顯示與隱藏
//Setting statusBarHidden does nothing if your application is using the defaultUIViewController-based status bar system.
如果使用的是默認的基於status bar系統的UIViewController,設置statusBarHidden是沒有任何作用的
@property(nonatomic,getter=isStatusBarHidden)BOOLstatusBarHidden;
在iOS7之前,狀態欄由UIApplication對象控制,在iOS7之後狀態欄由控制器決定
iOS之前
在iOS7之後
儘管現在狀態欄默認由控制器管理,但是以後在一個項目中有很多個控制器,在每個控制器都需要設置狀態欄的隱藏是非常麻煩的,所以最好還是通過UIApplication對象管理,如果想讓UIApplication對象管理狀態欄的顯示與隱藏,需要對配置文件做一些設置,設置如下
經過上面的設置,就可以採用iOS7之前的做法了,狀態欄不再顯示
6*通過UIApplication控制網頁