1.我爲何要寫這篇博客記錄它?學習
答:由於 UIAlertView和UIActionSheet 被劃線了 蘋果不推薦咱們使用這兩個類了,也再也不進行維護和更新,爲了之後方便使用我來記錄一下。如圖所示spa
正如蘋果所說它如今讓咱們用UIAlertConntroller(其實iOS 8.0就可使用這個類了) 並設置樣式爲UIAlertcontrollerStyleAlert 就是原來的UIAlertView了,同理UIAlertcontrollerStyleActionSheet就是UIActionSheet。3d
2.那若是繼續使用UIAlertView 和 UIActionSheet 這兩個控件會不會有問題? 該如何選擇使用哪一個呢?代理
答:繼續使用不會有問題,就像之前過時的API同樣 咱們同樣可使用,可是蘋果不會對其進行更新和維護了,就是說可能之後會有新功能,或者bug 蘋果都不會對這兩個控件進行更新了。對於選擇,我的認爲蘋果既然取代了這兩個類確定是有緣由的,多是控件拓展起來不便,也多是維護起來繁瑣,使用起來麻煩等等吧,既然蘋果推薦咱們用UIAlertController 那咱們就乖乖用好了。何況我用過發現比之前那兩個控件好用不少。blog
3.怎麼使用UIAlertController呢?博客
答:廢話很少說直接上代碼。以下所示:it
/* io
類方法快速建立一個提示控制器 值得注意的是這個控制器有個preferreStyle屬性你能夠根據這個屬性來肯定是使用UIAlertView 仍是 UIActionSheet bug
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回調中這樣方便了不少不是嗎? 並且將原來的兩個控件合二爲一。咱們能夠自行再次對其封裝 使用會更加方便。
若是有不對的地方還請多多指教(QQ:234009184),我將懷着謙卑的心,努力學習。