B12-UIAlertController(NS_CLASS_AVAILABLE_IOS(8_0))。

      在IOS8之后,UIAlertController替代了UIActionSheet和UIAlertView。UIAlertController的使用主要分三个步骤:

一、初始化

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"啊哈哈哈哈" preferredStyle:UIAlertControllerStyleAlert];
// typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
//    UIAlertControllerStyleActionSheet = 0,
//    UIAlertControllerStyleAlert
//} NS_ENUM_AVAILABLE_IOS(8_0);

二、添加Action(button或者textfield)

[alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
        NSLog(@"点击了取消按钮");
    }]]; // 创建action添加action
    
    UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        NSLog(@"点击了确定按钮");
    }];
    [alert addAction:sureAction]; // 创建action添加action
sureAction.enabled = NO;
    self.sureAction = sureAction;
__weak typeof(self) weakSelf = self; [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.placeholder = @"用户名"; textField.textColor = [UIColor redColor]; [textField addTarget:weakSelf action:@selector(textDidChange:) forControlEvents:UIControlEventEditingChanged]; }]; // 添加textField

- (void)textDidChange:(UITextField *)textField
{
    self.sureAction.enabled = textField.hasText;
}

三、显示

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

四、弱引用的方式

//    __weak UIAlertController *weakAlert = alert;
//    __unsafe_unretained UIAlertController *weakAlert = alert;
//    __weak typeof(alert) weakAlert = alert;
原文地址:https://www.cnblogs.com/yaann/p/4624876.html