新的弹窗UIAlertController
2017-01-02 本文已影响25人
i诺离
// 调取action
@property (nonatomic, readonly) NSArray<UIAlertAction *> *actions;
// 调取alert上的textField
@property (nullable, nonatomic, readonly) NSArray<UITextField *> *textFields;
// preferredStyle:
typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
UIAlertControllerStyleActionSheet = 0,
UIAlertControllerStyleAlert
}
// 初始弹窗样式
UIAlertController *sheetAlert = [UIAlertController alertControllerWithTitle:@"title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];
// 向弹窗上加按钮,可以在block中处理逻辑
UIAlertAction *alertAction1 = [UIAlertAction actionWithTitle:@"action1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){}];
// 控制alertAction是否可以点击
alertAction1.enabled = YES;
// 添加
[sheetAlert addAction:alertAction1];
// style:
typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
UIAlertActionStyleDefault = 0, // 蓝色
UIAlertActionStyleCancel, // 取消按钮
UIAlertActionStyleDestructive // 警示按钮,红色
}
// show alert
[self presentViewController:sheetAlert animated:YES completion:nil];
在alert加textField,只能在alert上加
[sheetAlert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { }];
// textField 继承UIControl 所以可调用其中的监听方法
// 也可以用NSNotificationCenter进行事件监听
富文本
[sheetAlert setValue:msg forKey:@"attributedMessage"];