我们写代码时候,经常会用到弹框,然后到处都是写基本一样的代码,干脆给它做一个分类,封装起来,这样,直接调用方法。我这里仅仅提供了四种最常见的。使用方法非常简单,直接将UIViewController+Message 这个类拖入到项目中,导入头文件需要使用的地方,建议以后直接放pch
Dome: https://github.com/LYWGod/UIAlertControllerExtension
第一种:弹出UIAlertController 风格为 UIAlertControllerStyleAlert 且有取消和确定按钮
第二种:弹出UIAlertController 风格为UIAlertControllerStyleAlert 并且只有一个确定按钮
第三种:弹出UIAlertController 风格为UIAlertControllerStyleActionSheet并且有两个选择项和一个取消项
第三种:弹出UIAlertController 风格为UIAlertControllerStyleActionSheet并且有一个选择项和一个取消项
封装的方法非常简单。如果需要也可以直接下载
代码.h文件
#import <UIKit/UIKit.h>
@interface UIViewController (Message)
/**
弹出UIAlertController
@param title 标题
@param message 消息
@param sure 点击确定按钮
*/
- (void)showAlertSureWithTitle:(NSString *)title message:(NSString *)message sure:(void (^) (UIAlertAction *action))sure;
/**
弹出UIAlerController
@param title 标题
@param message 消息
@param sure 点击确定
@param cancel 点击取消
*/
- (void)showAlertSureAndCancelWithTitle:(NSString *)title message:(NSString *)message sure:(void (^) (UIAlertAction *action))sure cancel:(void (^) (UIAlertAction *action))cancel;
/**
弹出UIAlertController
@param actionOneTitle 标题
@param handlerOne 点击标题的事件
*/
- (void)showSheetOneaction:(NSString *)actionOneTitle handlerOne:(void(^)(UIAlertAction *action))handlerOne;
/**
弹出UIAlerController
@param actionOneTitle 第一标题
@param actionTwoTitle 第二个标题
@param handlerOne 第一个标题点击事件
@param handlerTwo 第二个标题点击事件
*/
- (void)showSheetTwoaction:(NSString *)actionOneTitle actionTwo:(NSString *)actionTwoTitle handlerOne:(void(^)(UIAlertAction *action))handlerOne handlerTwo:(void (^) (UIAlertAction *action))handlerTwo;
@end
.m文件
#import "UIViewController+Message.h"
@implementation UIViewController (Message)
/**
弹出UIAlertController
@param title 标题
@param message 消息
@param sure 点击确定按钮
*/
- (void)showAlertSureWithTitle:(NSString *)title message:(NSString *)message sure:(void (^) (UIAlertAction *action))sure;
{
UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:sure];
[alert addAction:action];
[self presentViewController:alert animated:YES completion:nil];
}
/**
弹出UIAlerController
@param title 标题
@param message 消息
@param sure 点击确定
@param cancel 点击取消
*/
- (void)showAlertSureAndCancelWithTitle:(NSString *)title message:(NSString *)message sure:(void (^) (UIAlertAction *action))sure cancel:(void (^) (UIAlertAction *action))cancel
{
UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:sure];
UIAlertAction *revoke = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:cancel];
[alert addAction:action];
[alert addAction:revoke];
[self presentViewController:alert animated:YES completion:nil];
}
/**
弹出UIAlertController
@param actionOneTitle 标题
@param handlerOne 点击标题的事件
*/
- (void)showSheetOneaction:(NSString *)actionOneTitle handlerOne:(void(^)(UIAlertAction *action))handlerOne
{
UIAlertController *alertSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *actionOne = [UIAlertAction actionWithTitle:actionOneTitle style:UIAlertActionStyleDefault handler:handlerOne];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
[alertSheet addAction:actionOne];
[alertSheet addAction:cancelAction];
[self presentViewController:alertSheet animated:YES completion:nil];
}
/**
弹出UIAlerController
@param actionOneTitle 第一标题
@param actionTwoTitle 第二个标题
@param handlerOne 第一个标题点击事件
@param handlerTwo 第二个标题点击事件
*/
- (void)showSheetTwoaction:(NSString *)actionOneTitle actionTwo:(NSString *)actionTwoTitle handlerOne:(void(^)(UIAlertAction *action))handlerOne handlerTwo:(void (^) (UIAlertAction *action))handlerTwo
{
UIAlertController *alertSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *actionOne = [UIAlertAction actionWithTitle:actionOneTitle style:UIAlertActionStyleDefault handler:handlerOne];
UIAlertAction *actionTwo = [UIAlertAction actionWithTitle:actionTwoTitle style:UIAlertActionStyleDefault handler:handlerTwo];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
[alertSheet addAction:actionOne];
[alertSheet addAction:actionTwo];
[alertSheet addAction:cancelAction];
[self presentViewController:alertSheet animated:YES completion:nil];
}
@end