UIAlertController的集成关系:
UIAlertController:UIViewController:UIResponder:NSObject
//viewDidLoad中创建的一个按钮的点击事件
-(void)payBtnAction
{
/*-------------------------------------------UIAlertAction--------------------------------------------------*/
/**
1、创建
+ actionWithTitle:style:handler:
*/
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
/**
2、获取Action属性
.title //获取标题(只读)
.style //获取类型(只读) UIAlertActionStyleDefault默认、 Cancel取消、 Destructive销毁
.enabled //是否可用
*/
NSLog(@"title:%@", cancelAction.title);
NSLog(@"style:%ld",(long)cancelAction.style);
cancelAction.enabled = NO;
UIAlertAction *doneAction = [UIAlertAction actionWithTitle:@"完成" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击了完成按钮");
}];
/*------------------------------------------UIAlertController-------------------------------------------------*/
/**
1、初始化
+ alertControllerWithTitle:message:preferredStyle:
*/
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
message:@"This is an alert."
preferredStyle:UIAlertControllerStyleAlert];
/**
2、配置Alert
.title //设置和获取标题
.message //设置和获取消息
.preferredStyle //类型(只读):UIAlertControllerStyleActionSheet,UIAlertControllerStyleAlert
*/
alert.title = @"Doudou Alert";
alert.message = @"This is Doudou's alert";
/**
3、配置Action
- addAction: //添加Action
.actions //获取Actions数组(只读)
*/
[alert addAction:cancelAction];
[alert addAction:doneAction];
/**
4、配置TextField
- addTextFieldWithConfigurationHandler: //添加输入框,block中配置输入框的属性
.textFields //通过[[alert.textFields objectAtIndex:0] text]获取输入框中的内容
*/
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"Login";
}];
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"Password";
}];
NSLog(@"%@",[[alert.textFields objectAtIndex:0] text]);
/**
5、显示 //父类中的方法,此方法不能写在viewDidLoad中
*/
[self presentViewController:alert animated:YES completion:nil];
}