iOS基本控件之UIAlertController

        在IOS8以后我们就可以用这个UIAlertController了,本人感觉用惯了UIAlertView,还真的有点不习惯这个UIAlertController,所以自己用警告框的时候基本用的都还是UIAlertView,可是在IOS9之后这个UIAlertView就要被放弃了,昨天IOS10刚出来,那我现在就得把项目中自己用到的这个UIAlertView修改成这个controller了,今天在用的时候,我发现给这个controller添加事件的时候取消永远是在前边,这看着会不会太奇葩了,UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

//do sure action

}];

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

//do cancel action

}];

[alertController addAction:sureAction];

[alertController addAction:cancelAction];

这样的话,取消在前边,如下图:

好吧 奇葩,所以我想着是不是这个cancel有问题,所以我这么写:

iOS基本控件之UIAlertController_第1张图片

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"输入数值不符合规则,请重新输入"  preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

//do sure action

}];

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

//do cancel action

}];

[alertController addAction:sureAction];

[alertController addAction:cancelAction];

[self.viewController presentViewController:alertController animated:YES completion:^{

}];

还真是,解决了问题:

iOS基本控件之UIAlertController_第2张图片

对于这个alertController还有一点,之前没注意过,就是直接在controller中写几个textField,注意是几个,不是只能写一个,类似下图:

iOS基本控件之UIAlertController_第3张图片

以后遇到这种需求,不用自定义了,系统都封号了,当然了,如果跟你的需求差别大的话还是需要自己封装的。alertView也有,不过只能最多有两个,由于以后不再用alertView,故在此不再赘述。

以后得用这个AlertController,就像我之前写的关于App Store 的IPV6的事中的一句话,真是苹果打了哈欠,我们就感觉地动山摇啊。不关注苹果动向,随时的API可能就不能用了。

Hope To Help You !

你可能感兴趣的:(iOS基本控件之UIAlertController)