iOS-UIKit框架学习—UIAlertController

UIAlertController对象向用户展示一个提示消息。这个类替换了用于显示提示 UIActionSheetUIAlertViewclasses类。可以使用presentViewController:animated:completion:方法配置你想要的事件和风格。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertAction : NSObject <NSCopying>
// 创建提示事件的标题、风格、点击事件的处理并返回提示事件
+ (instancetype)actionWithTitle:(nullable NSString *)title style:(UIAlertActionStyle)style handler:(void (^ __nullable)(UIAlertAction *action))handler;
// 标题
@property (nullable, nonatomic, readonly) NSString *title;
// 风格
@property (nonatomic, readonly) UIAlertActionStyle style;
// 是否启用事件
@property (nonatomic, getter=isEnabled) BOOL enabled;
@end
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertController : UIViewController
// 创建并返回一个用户展示提示的控制器
+ (instancetype)alertControllerWithTitle:(nullable NSString *)title message:(nullable NSString *)message preferredStyle:(UIAlertControllerStyle)preferredStyle;
// 添加UIAlertAction到控制器中
- (void)addAction:(UIAlertAction *)action;
// 用户可以操作的事件数组
@property (nonatomic, readonly) NSArray<UIAlertAction *> *actions;
// 设置首选的事件
@property (nonatomic, strong, nullable) UIAlertAction *preferredAction NS_AVAILABLE_IOS(9_0);
// 添加输入框
- (void)addTextFieldWithConfigurationHandler:(void (^ __nullable)(UITextField *textField))configurationHandler;
// 设置输入框数组
@property (nullable, nonatomic, readonly) NSArray<UITextField *> *textFields;
// 标题
@property (nullable, nonatomic, copy) NSString *title;
// 内容
@property (nullable, nonatomic, copy) NSString *message;
// 首选的风格
@property (nonatomic, readonly) UIAlertControllerStyle preferredStyle;
@end
1
2
3
4
5
6
7
8
9
10
11
12
// 事件风格
typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
UIAlertActionStyleDefault = 0, // 默认
UIAlertActionStyleCancel, // 取消
UIAlertActionStyleDestructive // 红色
} NS_ENUM_AVAILABLE_IOS(8_0);
// 控制器风格
typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
UIAlertControllerStyleActionSheet = 0, // ActionSheet
UIAlertControllerStyleAlert // AlertView
} NS_ENUM_AVAILABLE_IOS(8_0);