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