天天看點

iOS - UIAlertController三種顯示提示框代碼

UIAlertView在IOS 8以上版本已經過時了,官方推薦我們使用UIAlertController代替UIAlertView、UIActionSheet

1、UIAlertController顯示普通的Alert

iOS - UIAlertController三種顯示提示框代碼
  • (IBAction)showAlert:(UIButton *)sender {

    //顯示提示框

    //過時

    // UIAlertView alert = [[UIAlertView alloc] initWithTitle:@“Title” message:@“message” delegate:self cancelButtonTitle:@“cancel” otherButtonTitles:@“ok”, nil];

    // [alert show];

    UIAlertController alert = [UIAlertController alertControllerWithTitle:@“Title”

    message:@“This is an alert.”

    preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@“OK” style:UIAlertActionStyleDefault

    handler:^(UIAlertAction * action) {

    //響應事件

    NSLog(@“action = %@”, action);

    }];

    UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@“Cancel” style:UIAlertActionStyleDefault

    handler:^(UIAlertAction * action) {

    //響應事件

    NSLog(@“action = %@”, action);

    }];

    [alert addAction:defaultAction];

    [alert addAction:cancelAction];

    [self presentViewController:alert animated:YES completion:nil];

    }

    2、UIAlertController顯示帶文本輸入的的Alert

    iOS - UIAlertController三種顯示提示框代碼
  • (IBAction)showList:(UIButton )sender {

    //提示框添加文本輸入框

    UIAlertController alert = [UIAlertController alertControllerWithTitle:@“Title”

    message:@“This is an alert.”

    preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* okAction = [UIAlertAction actionWithTitle:@“OK” style:UIAlertActionStyleDefault

    handler:^(UIAlertAction * action) {

    //響應事件

    //得到文本資訊

    for(UITextField text in alert.textFields){

    NSLog(@“text = %@”, text.text);

    }

    }];

    UIAlertAction cancelAction = [UIAlertAction actionWithTitle:@“Cancel” style:UIAlertActionStyleCancel

    handler:^(UIAlertAction * action) {

    //響應事件

    NSLog(@“action = %@”, alert.textFields);

    }];

    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {

    textField.placeholder = @“登入”;

    }];

    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {

    textField.placeholder = @“密碼”;

    textField.secureTextEntry = YES;

    }];

    [alert addAction:okAction];

    [alert addAction:cancelAction];

    [self presentViewController:alert animated:YES completion:nil];

}

3、UIAlertController顯示ActionSheet

iOS - UIAlertController三種顯示提示框代碼
  • (IBAction)showSheet:(UIButton )sender {

    //顯示彈出框清單選擇

    UIAlertController alert = [UIAlertController alertControllerWithTitle:@“Title”

    message:@“This is an Sheet.”

    preferredStyle:UIAlertControllerStyleActionSheet];

    UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@“取消” style:UIAlertActionStyleCancel

    handler:^(UIAlertAction * action) {

    //響應事件

    NSLog(@“action = %@”, action);

    }];

    UIAlertAction* deleteAction = [UIAlertAction actionWithTitle:@“删除” style:UIAlertActionStyleDestructive

    handler:^(UIAlertAction * action) {

    //響應事件

    NSLog(@“action = %@”, action);

    }];

    UIAlertAction* saveAction = [UIAlertAction actionWithTitle:@“儲存” style:UIAlertActionStyleDefault

    handler:^(UIAlertAction * action) {

    //響應事件

    NSLog(@“action = %@”, action);

    }];

    [alert addAction:saveAction];

    [alert addAction:cancelAction];

    [alert addAction:deleteAction];

    [self presentViewController:alert animated:YES completion:nil];

    }