//
// UIAlertController.h
// UIKit
//
// Copyright (c) 2014-2015 Apple Inc. All rights reserved.
//
#import <UIKit/UIViewController.h>//继承自UIViewController
NS_ASSUME_NONNULL_BEGIN
#pragma mark======== 两个枚举 ====
typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
UIAlertActionStyleDefault = 0,
UIAlertActionStyleCancel,
UIAlertActionStyleDestructive
} NS_ENUM_AVAILABLE_IOS(8_0);//UIAlertActionStyle 的枚举
typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
UIAlertControllerStyleActionSheet = 0,
UIAlertControllerStyleAlert
} NS_ENUM_AVAILABLE_IOS(8_0); //弹窗样式的枚举
#pragma mark======== UIAlertAction ====
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertAction : NSObject <NSCopying> //UIAlertAction类
+ (instancetype)actionWithTitle:(nullable NSString *)title style:(UIAlertActionStyle)style handler:(void (^ __nullable)(UIAlertAction *action))handler; //UIAlertAction实例化的单例 (核心部分)
@property (nullable, nonatomic, readonly) NSString *title; //注册事件的标题
@property (nonatomic, readonly) UIAlertActionStyle style; //弹窗的样式
@property (nonatomic, getter=isEnabled) BOOL enabled; //是否可用
@end
#pragma mark ======== UIAlertController =======
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertController : UIViewController //继承自UIViewController
//UIAlertController 实例化的単例
//instancetype 对于非关联返回类型,instancetype可以让编译器知道,返回类的所在类型
+ (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);
// 与UITextField建立联系的注册事件
- (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
NS_ASSUME_NONNULL_END