iOS 给UIViewController添加分类,快速创建alert

.h文件

/**
 快速创建AlertController:包括Alert 和 ActionSheet
 
 @param title       标题文字
 @param message     消息体文字
 @param actions     可选择点击的按钮(不包括取消)
 @param cancelTitle 取消按钮(可自定义按钮文字)
 @param style       类型:Alert 或者 ActionSheet
 @param completion  完成点击按钮之后的回调(不包括取消)
 */

+ (void)showAlertWithTitle: (NSString *)title message: (NSString *)message actionTitles: (NSArray *)actions cancelTitle: (NSString *)cancelTitle style: (UIAlertControllerStyle)style completion: (void(^)(NSInteger index))completion;

.m文件

+ (void)showAlertWithTitle: (NSString *)title message: (NSString *)message actionTitles: (NSArray *)actions cancelTitle: (NSString *)cancelTitle style: (UIAlertControllerStyle)style completion: (void(^)(NSInteger index))completion {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:style];
    for (NSInteger index = 0; index < actions.count; index++) {
        UIAlertAction *action = [UIAlertAction actionWithTitle:actions[index] style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            !completion ?  : completion(index);
        }];
        [alert addAction:action];
    }
    if (cancelTitle.length) {
        UIAlertAction *cancel = [UIAlertAction actionWithTitle:cancelTitle style:UIAlertActionStyleCancel handler:nil];
        [alert addAction:cancel];
    }
    UIViewController *vc = [[UIApplication sharedApplication] keyWindow].rootViewController;
    [vc presentViewController:alert animated:YES completion:nil];
}

你可能感兴趣的:(iOS 给UIViewController添加分类,快速创建alert)