UIApplication

一、UIApplication

  • UIApplication對象是應(yīng)用程序的象征滚秩,一個UIApplication對象就代表一個應(yīng)用程序。
  • 每一個應(yīng)用都有自己的UIApplication對象淮捆,而且是單例的郁油,如果試圖在程序中新建一個UIApplication對象,那么將報錯提示攀痊。
  • 通過[UIApplication sharedApplication]可以獲得這個單例對象
  • 一個iOS程序啟動后創(chuàng)建的第一個對象就是UIApplication對象桐腌,且只有一個(通過代碼獲取兩個UIApplication對象,打印地址可以看出地址是相同的)苟径。
  • 利用UIApplication對象案站,能進行一些應(yīng)用級別的操作
  1. 應(yīng)用級別的操作示例:
    (1). 設(shè)置應(yīng)用程序圖標(biāo)右上角的紅色提醒數(shù)字(如QQ消息的時候,圖標(biāo)上面會顯示1棘街,2蟆盐,3條新信息等。)
@property(nonatomic)NSInteger applicationIconBadgeNumber;

-(void)viewDidLoad{    
    [super viewDidLoad];    
    //創(chuàng)建并添加一個按鈕    
    UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(100, 100, 60, 30)];    
    [btn setTitle:@"按鈕" forState:UIControlStateNormal];    
    [btn setBackgroundColor:[UIColor brownColor]];
    [btn addTarget:self action:@selector(onClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}

-(void)onClick{
    NSLog(@"按鈕點擊事件");
    //錯誤遭殉,只能有一個唯一的UIApplication對象石挂,不能再進行創(chuàng)建
    //UIApplication *app=[[UIApplication alloc]init];
    //通過sharedApplication獲取該程序的UIApplication對象
    UIApplication *app=[UIApplication sharedApplication];
    app.applicationIconBadgeNumber=123;
}
7f1a5240724398536fc9829abf7aff16.png

(2). 設(shè)置聯(lián)網(wǎng)指示器的可見性

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

代碼和效果:

//設(shè)置指示器的聯(lián)網(wǎng)動畫
app.networkActivityIndicatorVisible=YES;
5e149d6029dff33011c9732c676ef819.png

(3). 管理狀態(tài)欄
從iOS7開始,系統(tǒng)提供了2種管理狀態(tài)欄的方式

  1. 通過UIViewController管理(每一個UIViewController都可以擁有自己不同的狀態(tài)欄).
    在iOS7中险污,默認(rèn)情況下痹愚,狀態(tài)欄都是由UIViewController管理的,UIViewController實現(xiàn)下列方法就可以輕松管理狀態(tài)欄的可見性和樣式
    狀態(tài)欄的樣式 - (UIStatusBarStyle)preferredStatusBarStyle;
    狀態(tài)欄的可見性 -(BOOL)prefersStatusBarHidden;
#pragma mark-設(shè)置狀態(tài)欄的樣式
-(UIStatusBarStyle)preferredStatusBarStyle
{
    //設(shè)置為白色
    //return UIStatusBarStyleLightContent;
    //默認(rèn)為黑色
     return UIStatusBarStyleDefault;
}
#pragma mark-設(shè)置狀態(tài)欄是否隱藏(否)
-(BOOL)prefersStatusBarHidden
{
    return NO;
}
```
2. 通過UIApplication管理(一個應(yīng)用程序的狀態(tài)欄都由它統(tǒng)一管理) 
如果想利用UIApplication來管理狀態(tài)欄蛔糯,首先得修改Info.plist的設(shè)置 
 
![c37e73c2f8e725d1ecd05a0b2f84e7a8.png](http://upload-images.jianshu.io/upload_images/1253942-2233145214d8ddc7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
//通過sharedApplication獲取該程序的UIApplication對象
UIApplication *app=[UIApplication sharedApplication];
app.applicationIconBadgeNumber=123;    
//設(shè)置指示器的聯(lián)網(wǎng)動畫
app.networkActivityIndicatorVisible=YES;
//設(shè)置狀態(tài)欄的樣式
//app.statusBarStyle=UIStatusBarStyleDefault;//默認(rèn)(黑色)
//設(shè)置為白色+動畫效果
  [app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
//設(shè)置狀態(tài)欄是否隱藏
app.statusBarHidden=YES;
  //設(shè)置狀態(tài)欄是否隱藏+動畫效果
[app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

```
補充

  • 既然兩種都可以對狀態(tài)欄進行管理拯腮,那么什么時候該用什么呢?
  • 如果狀態(tài)欄的樣式只設(shè)置一次蚁飒,那就用UIApplication來進行管理动壤;
  • 如果狀態(tài)欄是否隱藏,樣式不一樣那就用控制器進行管理淮逻。
    UIApplication來進行管理有額外的好處狼电,可以提供動畫效果蜒灰。

(4). openURL:方法
UIApplication有個功能十分強大的openURL:方法

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

openURL:方法的部分功能有

  • 打電話
UIApplication *app = [UIApplicationsharedApplication]; [app openURL:[NSURLURLWithString:@"tel://10086"]]; 
  • 發(fā)短信
[app openURL:[NSURLURLWithString:@"sms://10086"]]; 
  • 發(fā)郵件
[app openURL:[NSURLURLWithString:@"mailto://12345@qq.com"]]; 
  • 打開一個網(wǎng)頁資源
[app openURL:[NSURLURLWithString:@"http://ios.itcast.cn"]]; 

打開其他app程序 openURL方法,可以打開其他APP肩碟。

URL補充:

  • URL:統(tǒng)一資源定位符强窖,用來唯一的表示一個資源。
  • URL格式:協(xié)議頭://主機地址/資源路徑
  • 網(wǎng)絡(luò)資源:http/ ftp等 表示百度上一張圖片的地址 http://www.baidu.com/images/20140603/abc.png
  • 本地資源:file:///users/apple/desktop/abc.png(主機地址省略)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末削祈,一起剝皮案震驚了整個濱河市翅溺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌髓抑,老刑警劉巖咙崎,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吨拍,居然都是意外死亡褪猛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門羹饰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伊滋,“玉大人,你說我怎么就攤上這事队秩⌒ν” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵馍资,是天一觀的道長筒主。 經(jīng)常有香客問我,道長鸟蟹,這世上最難降的妖魔是什么乌妙? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮建钥,結(jié)果婚禮上藤韵,老公的妹妹穿的比我還像新娘。我一直安慰自己锦针,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布置蜀。 她就那樣靜靜地躺著奈搜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盯荤。 梳的紋絲不亂的頭發(fā)上馋吗,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音秋秤,去河邊找鬼宏粤。 笑死脚翘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绍哎。 我是一名探鬼主播来农,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼崇堰!你這毒婦竟也來了沃于?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤海诲,失蹤者是張志新(化名)和其女友劉穎繁莹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體特幔,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡咨演,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚯斯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薄风。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖溉跃,靈堂內(nèi)的尸體忽然破棺而出村刨,到底是詐尸還是另有隱情,我是刑警寧澤撰茎,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布嵌牺,位于F島的核電站,受9級特大地震影響龄糊,放射性物質(zhì)發(fā)生泄漏逆粹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一炫惩、第九天 我趴在偏房一處隱蔽的房頂上張望僻弹。 院中可真熱鬧,春花似錦他嚷、人聲如沸蹋绽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卸耘。三九已至,卻和暖如春粘咖,著一層夾襖步出監(jiān)牢的瞬間蚣抗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工瓮下, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翰铡,地道東北人钝域。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像锭魔,于是被迫代替她去往敵國和親例证。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容