今天项目中遇到需要获取UIAlertController 中textField的值
首先代码是这样:
NSString * title = @"请输入使用数量";
UIAlertController * alertC = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction * cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel
handler:^(UIAlertAction * _Nonnull action) {
}];
UIAlertAction * confirmAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}];
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.text = [NSString stringWithFormat:@"%@",[_goodsDic objectForKey:@"count"]];
_countStr = textField.text ;
}];
[alertC addAction:cancelAction];
[alertC addAction:confirmAction];
[self presentViewController:alertC animated:YES completion:nil];
];
我用一个全局变量接收textField.text的值,认为可以拿到textField的值,但是最后传的值为空后来
在confirmAction中用UIAlertController 的.textFields的属性取得值,
代码如下:
UIAlertAction * confirmAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSArray * arr = alertC.textFields;
UITextField * field = arr[0];
_countStr = field.text;
[self eatLingzhi:_countStr heroType:heroType];
}];
最后,传值成功!