首页 > 代码库 > iOS核心笔记——UIAlertController

iOS核心笔记——UIAlertController

1、UIAlertController简介:

技术分享

※了解:UIAlertController - - -> 提醒框控制器,在需要提醒用户执行某些操作时使用;通常分为两种样式:中间提醒框、底部提醒框。


苹果官方介绍:技术分享

2、UIAlertController使用:

2-1、UIAlertController样式:
  • 1、UIAlertController有2种样式:

    如下如所示技术分享


2-2、UIAlertController使用步骤:
  1. UIAlertController使用alertControllerWithTitle:message:preferredStyle:创建UIAlertController控制器,并设置提醒框提醒消息、标题、以及提醒框样式;
  2. 通过actionWithTitle:style:handler:方法创建UIAlertAction;
  3. alertController调用addAction:方法将action添加到alertController中;
  4. 源控制器调用presentViewController:animated:completion:方法,将alertController以Modal形式展示出来。

3、UIAlertController属性:

3-1、UIAlertController三大属性:

技术分享

※重要:preferredStyle属性为只读属性(即:readOnly)。


3-2、UIAlertController中action属性:

技术分享

※重要: 创建一个确定按钮,一定要注意不能在提醒控制器的按钮的点击方法内部用到提醒控制器自己,不能把下面这句话放在block内部;“不然会死循环,导致警告控制器不能销毁”。


3-3、UIAlertController中添加文本框属性:

技术分享

※重要: 只有中间提醒框样式才能够添加文本框,底部提醒框不能添加文本框。


4、2种样式示例:

4-1、中间提醒框:

示例程序

1.    // MARK: - 创建UIAlertController
2. UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"您的账户余额已不足!" preferredStyle:UIAlertControllerStyleAlert];
3.
4. // MARK: - 设置alert的属性
5. // alert.preferredStyle 只读属性(readOnly)
6.// alert.preferredStyle = UIAlertControllerStyleAlert;
7.
8. // MARK: - 添加文本框
9. [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
10. // 1. 设置占位文字
11. textField.placeholder = @"请输入充值金额!";
12. }];
13.
14. // MARK: - 创建按钮
15. UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
16. // 1. 通过textFields属性获取文本框
17. NSString *text = [alert.textFields[0] text];
18. NSLog(@"您的账户已充值:%@元!", text);
19. }];
20.
21. UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
22. NSLog(@"您的账户已停机!");
23. }];
24.
25. // MARK: - 添加action
26. [alert addAction:sure];
27. [alert addAction:cancel];
28.
29. // MARK: - 显示提醒框
30. [self presentViewController:alert animated:YES completion:^{
31.
32. }];

4-2、底部提醒框示例:

示例程序

1.    // UIAlertController 通过alloc、init创建的默认是UIAlertControllerStyleActionSheet样式
2. UIAlertController *actionSheet = [[UIAlertController alloc] init];
3.
4. // MARK: - 设置属性
5. actionSheet.title = @"警告";
6. actionSheet.message = @"您的余额已不足, 请及时充值!";
7.
8. // MARK: - 只读属性
9.// actionSheet.preferredStyle = UIAlertControllerStyleActionSheet;
10.
11. // MARK: - 创建按钮
12. UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
13. NSLog(@"您的账户已停机!");
14. }];
15.
16. UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
17. NSLog(@"您的账户已缴费!");
18. }];
19.
20. // MARK: - 添加action
21. [actionSheet addAction:sure];
22. [actionSheet addAction:cancel];
23.
24. // MARK: - 底部提醒框不能添加文本框
25.// [actionSheet addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
26.// // 1. 设置占位文字
27.// textField.placeholder = @"请输入充值金额!";
28.// }];
29.
30.
31. // MARK: - 底部显示提醒框
32. [self presentViewController:actionSheet animated:YES completion:^{
33.
34. }];

iOS核心笔记——UIAlertController