UIAlertController的各種情況

初始化就有兩種,主要是style的不同,一種是Alert即彈框,一種是sheet即操作表


?????? 這個就是彈框的初始化? UIAlertController * homeAlert = [UIAlertController alertControllerWithTitle:@"小區" message:@"請輸入你的小區名稱" preferredStyle:UIAlertControllerStyleAlert];

?????? 這個則是操作表的初始化? UIAlertController * sexSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];

兩種情況都要加操作

操作表貌似 是只有按鈕的 彈框還有輸入框

??????? 按鈕有三種,普通按鈕,取消按鈕,和警告按鈕,警告按鈕是紅色的,取消按鈕點了之后就會取消這個操作表或著是彈框,取消按鈕一般會出現在默認的位置,比如說操作表的最下邊,彈框的最左邊

UIAlertAction * a1 = [UIAlertAction actionWithTitle:<#(nullable NSString *)#> style:<#(UIAlertActionStyle)#> handler:<#^(UIAlertAction * _Nonnull action)handler#>];

上面的代碼就是操作也可以說按鈕的初始化,actionWithTitle是顯示文字,取消按鈕就寫@“取消”,第二個是style,有三種

取消:UIAlertActionStyleCancel ?? 普通:UIAlertActionStyleDefault ?? 警告:UIAlertActionStyleDestructive

操作初始化之后還是要添加到操作表或者彈框中的,

handler里面寫的是點擊了這個按鈕(操作)會發生什么樣的事情。

[彈框或操作表? addAction:? 操作];

彈框與操作表不同在于,彈框中還可以加文本框,

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

? ? ? ? //textField.placeholder = @"請輸入你的小區名稱";

? ? ? ? textField.text = home;

? ? }];

比如上面這段代碼,他就是給彈框加文本框的方式,基本上沒啥太多的操作,但既然輸入東西了,不處理是不可能的,所以有了其中的處理,在這段代碼外部還要訪問這個文本框就要注意了,比如我按個確定鍵,就獲取這個文本框的值,

home = homeAlert.textFields[0].text;

彈框.文本框[0].text???? 注意,因為彈框上的文本框并不一定只有一個,因此需要使用數組的形式調用你所需要的文本框的值。

文本框與操作不一樣,直接就加到彈框上了,不需要在初始化之后再進行操作。

最后就是顯示這個彈框或者是操作表了

[self presentViewController:homeAlert animated:YES completion:nil];?

presentViewController后面跟要顯示的操作表或者彈框。 animated這個是動畫,第三個屬性completion通常為nil,他到底是什么我也不知道。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容