初始化就有兩種,主要是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,他到底是什么我也不知道。