iOS开发笔记(3) -- UIAlertController的二次封装

这篇博客介绍了如何对UIAlertController进行二次封装,通过简化参数实现便捷的使用。内容包括重写初始化类方法,展示弹框的方法,以及获取当前UIViewController的技巧。还提供了调用示例,并欢迎读者提出改进建议。
摘要由CSDN通过智能技术生成
最近有点忙,有20天没写博客了.现在准备做一个新项目整理一下心得,做些准备.
做iOS开发的都知道以前用的是UIAlert后来呗废弃掉了使用UIAlertController,其实本质上UIAlertController还是一个UIViewController;而且在项目开发中也经常会用到这样或者那样的弹窗试图,选择试图等等...
如果每次都进行每一个弹框的重写会很麻烦,所以我准备对系统的UIAlertController进行二次封装,一次来实现我偷懒的目的,言归正传上代码:


首先我创建一个类继承与系统的UIAlertController取名为WBAlertController,然后请无视掉自带的viewDidLoad等方法;

重写系统的初始化方法,因为系统的初始化方法为类方法(“+”方法)所以重写的当然也只能是类方法了.为了实现我偷懒的目的,我讲我所需要的所有参数统统简化;

+ (instancetype)initWBAlerControllerWithTitle:(NSString *)title message:(NSString *)message style:(NSString *)style titleArr:(NSMutableArray *)titleArr alerAction:(void (^)(NSInteger index))alerAction{
    //参数说明:
    //title表示弹框的标题;
    //message表示弹框的展示的信息;
    //style是0或者1;代表弹框的类型;UIAlertControllerStyleActionSheet = 0,UIAlertControllerStyleAlert = 1;
    //titleArr为弹框中出现的按钮标题的数组;个数你自己决定;
    //alerAction为block回调时间,因为这里只需要判断点击的按钮坐标就可以,其他需要壳自行添加参数;

//判断弹框类型
    if ([style isEqualToString:@"1"]) {
            WBAlertController *al
系统的UIAlert不太好用,写起来感觉太零散. 使用方法:case 0: [LTAlertView showTitle:@"LTAlert" message:@"我是普通alert" ButtonTitles:@[@"确认",@"取消"] OnTapBlock:^(LTAlertView* alert,NSInteger num) { NSLog(@"点击了第%d个按钮",num); }]; break; case 1: [LTAlertView showConfigBlock:^(LTAlertView *alertView) { alertView.alertViewStyle = UIAlertViewStyleSecureTextInput; } Title:@"LTAlert" message:@"带密码输的alert" ButtonTitles:@[@"确定",@"取消"] OnTapBlock:^(LTAlertView* alert,NSInteger num) { NSString* str = [alert textFieldAtIndex:0].text; NSLog(@"输入的文字是%@,点击了第%d个按钮",str,num); }]; break; case 2: [LTAlertView showConfigBlock:^(LTAlertView *alertView) { alertView.alertViewStyle = UIAlertViewStylePlainTextInput; } Title:@"LTAlert" message:@"带输入的alert" ButtonTitles:@[@"确定",@"取消"] OnTapBlock:^(LTAlertView* alert,NSInteger num) { NSString* str = [alert textFieldAtIndex:0].text; NSLog(@"输入的文字是%@,点击了第%d个按钮",str,num); }]; break; case 3: [LTAlertView showConfigBlock:^(LTAlertView *alertView) { alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput; alertView.backgroundColor = [UIColor redColor]; } Title:@"LTAlert" message:@"弹出带输入的alert" ButtonTitles:@[@"确定",@"取消"] OnTapBlock:^(LTAlertView* alert,NSInteger num) { NSString* accountStr = [alert textFieldAtIndex:0].text; NSString* passwordStr =[alert textFieldAtIndex:1].text; NSLog(@"账号是%@,密码是%@",accountStr,passwordStr); }]; break;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值