• UIAlertController 弹框提醒


    传统的alertView

    - (void)alertView
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"你的操作时非法的,您要继续吗" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
        [alert show];
    }

    这里写图片描述

    传统的actionSheet

    - (void)actionSheet
    {
        UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"警告:你的操作时非法的,您要继续吗" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定"
                                                  otherButtonTitles:@"关闭", nil];
        [sheet showInView:self.view];
     }

    这里写图片描述

    UIAlertController == UIAlertView + UIActionSheet

    - (void)alertController
    {
        // 危险操作:弹框提醒
        // 1.UIAlertView
        // 2.UIActionSheet
        // iOS8开始:UIAlertController == UIAlertView + UIActionSheet
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"你的操作时非法的,您要继续吗" preferredStyle:UIAlertControllerStyleAlert];
    
        // 添加按钮
        __weak typeof(alert) weakAlert = alert;
        [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
            NSLog(@"点击了确定按钮--%@-%@", [weakAlert.textFields.firstObject text], [weakAlert.textFields.lastObject text]);
        }]];
        [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
            NSLog(@"点击了取消按钮");
        }]];
    
        [alert addAction:[UIAlertAction actionWithTitle:@"其它" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
            NSLog(@"点击了其它按钮");
        }]];
    
        // 添加文本框
        [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
            textField.textColor = [UIColor redColor];
            textField.text = @"123";
            [textField addTarget:self action:@selector(usernameDidChange:) forControlEvents:UIControlEventEditingChanged];
            //        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(usernameDidChange:) name:UITextFieldTextDidChangeNotification object:textField];
        }];
        [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
            textField.secureTextEntry = YES;
            textField.text = @"123";
        }];
    
        [self presentViewController:alert animated:YES completion:nil];
    }
    
    - (void)usernameDidChange:(UITextField *)username
    {
        NSLog(@"%@", username.text);
    }

    这里写图片描述这里写图片描述

    其他操作

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"你的操作时非法的,您要继续吗" preferredStyle:UIAlertControllerStyleActionSheet];
        // 设置popover指向的item
        alert.popoverPresentationController.barButtonItem = self.navigationItem.leftBarButtonItem;
    
        // 添加按钮
        [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
            NSLog(@"点击了确定按钮");
        }]];
        [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
            NSLog(@"点击了取消按钮");
        }]];
    
        [self presentViewController:alert animated:YES completion:nil];
    
    }
    // UIAlertControllerStyleActionSheet的使用注意
    // 1.不能有文本框
    // 2.在iPad中,必须使用popover的形式展示
    
    // Text fields can only be added to an alert controller of style UIAlertControllerStyleAlert
    // 只能在UIAlertControllerStyleAlert样式的view上添加文本框

    这里写图片描述

     
  • 相关阅读:
    @终极解密输入网址按回车到底发生了什么
    jgitflow-maven-plugin报错:The authenticity of host can't be established.
    java log4j2日志行号不显示问题
    Prometheus监控之grafana常用模板编号记录
    DM数据守护
    使用IntelliJ IDEA 配置Maven(入门)
    IntelliJ IDEA lombok插件的安装和使用
    idea svn连接https报错问题: E230001: Server SSL certificate verification failed: certificate issued
    SVN安装后,右键不显示SVN菜单项
    IntelliJ IDEA怎么配置svn,集成svn方法
  • 原文地址:https://www.cnblogs.com/crash-wu/p/4932446.html
Copyright © 2020-2023  润新知