iOS 9.0中UIAlertController的用法。


1.我為什么要寫這篇博客記錄它?

答:因為 UIAlertView和UIActionSheet 被划線了 蘋果不推薦我們使用這兩個類了,也不再進行維護和更新,為了以后方便使用我來記錄一下。如圖所示

正如蘋果所說它現在讓我們用UIAlertConntroller(其實iOS 8.0就可以使用這個類了) 並設置樣式為UIAlertcontrollerStyleAlert 就是原來的UIAlertView了,同理UIAlertcontrollerStyleActionSheet就是UIActionSheet。

 

2.那如果繼續使用UIAlertView 和 UIActionSheet 這兩個控件會不會有問題? 該如何選擇使用哪個呢?

答:繼續使用不會有問題,就像以前過期的API一樣 我們一樣可以使用,但是蘋果不會對其進行更新和維護了,就是說可能以后會有新功能,或者bug 蘋果都不會對這兩個控件進行更新了。對於選擇,個人認為蘋果既然取代了這兩個類肯定是有原因的,可能是控件拓展起來不便,也可能是維護起來繁瑣,使用起來麻煩等等吧,既然蘋果推薦我們用UIAlertController 那我們就乖乖用好了。況且我用過發現比以前那兩個控件好用很多。

 

3.怎么使用UIAlertController呢?

答:廢話不多說直接上代碼。如下所示:

 /* 

        類方法快速創建一個提示控制器 值得注意的是這個控制器有個preferreStyle屬性你可以根據這個屬性來確定是使用UIAlertView 還是 UIActionSheet 

            UIAlertControllerStyleActionSheet

            UIAlertControllerStyleAlert

     */

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"顯示的標題" message:@"標題的提示信息" preferredStyle:UIAlertControllerStyleAlert];

    

    [alertController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

        NSLog(@"點擊取消");

    }]];

    

    [alertController addAction:[UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        NSLog(@"點擊確認");

    }]];

    

    [alertController addAction:[UIAlertAction actionWithTitle:@"警告" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {

        NSLog(@"點擊警告");

    }]];

    

    [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {

        NSLog(@"添加一個textField就會調用 這個block");

    }];

    

    // 由於它是一個控制器 直接modal出來就好了

    [self presentViewController:alertController animated:YES completion:nil];

 

 

 

4.UIAlertController有什么好處?

答:省去了繁瑣的代理方法,原來的控件點擊每個功能按鈕調用方法 還得調用代理方法 要不然就是自己封裝一下,現在好了 由一個控制器來管理 操作方便了些 而且每個功能鍵都很清晰,點擊調用的方法都寫在block回調中這樣方便了很多不是嗎? 而且將原來的兩個控件合二為一。我們可以自行再次對其封裝 使用會更加方便。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM