免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

ios uialertviewcontroller封装

UIAlertViewController是iOS开发中常用的一个弹窗控件,可以用来显示提示信息、警告信息、确认信息等等。在实际开发过程中,我们可能需要多次使用UIAlertViewController,为了方便代码复用,我们可以将UIAlertViewController进行封装,以便在需要使用时直接调用。

UIAlertViewController的封装原理主要是通过创建一个继承自UIAlertViewController的类,并在该类中编写需要的方法和属性。在需要使用UIAlertViewController时,我们只需要创建该类的实例,然后调用其中的方法即可。

下面,我们来详细介绍如何进行UIAlertViewController的封装。

1. 创建一个继承自UIAlertViewController的类

首先,我们需要创建一个继承自UIAlertViewController的类,命名为CustomAlertViewController。在该类中,我们可以定义需要的属性和方法。

```

@interface CustomAlertViewController : UIAlertController

@property (nonatomic, copy) void(^confirmBlock)(void);

@property (nonatomic, copy) void(^cancelBlock)(void);

- (instancetype)initWithTitle:(NSString *)title message:(NSString *)message confirmTitle:(NSString *)confirmTitle cancelTitle:(NSString *)cancelTitle;

@end

```

在上面的代码中,我们定义了三个属性和一个初始化方法。其中,confirmBlock和cancelBlock是两个回调块,用来处理用户点击确认和取消按钮的操作。initWithTitle: message: confirmTitle: cancelTitle:方法用来初始化UIAlertViewController的标题、消息、确认按钮和取消按钮的标题。

2. 实现初始化方法

在CustomAlertViewController.m文件中,我们需要实现initWithTitle: message: confirmTitle: cancelTitle:方法。在该方法中,我们可以通过调用父类的initWithTitle: message: preferredStyle:方法来初始化UIAlertViewController,并设置确认和取消按钮的事件。

```

- (instancetype)initWithTitle:(NSString *)title message:(NSString *)message confirmTitle:(NSString *)confirmTitle cancelTitle:(NSString *)cancelTitle {

self = [super initWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];

if (self) {

UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:confirmTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

if (self.confirmBlock) {

self.confirmBlock();

}

}];

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:cancelTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

if (self.cancelBlock) {

self.cancelBlock();

}

}];

[self addAction:confirmAction];

[self addAction:cancelAction];

}

return self;

}

```

在上面的代码中,我们创建了两个UIAlertAction对象,分别用来表示确认和取消按钮,并设置它们的事件。然后,我们调用了addAction:方法,将两个UIAlertAction对象添加到UIAlertViewController中。

3. 实现回调块

在CustomAlertViewController类中,我们定义了两个回调块confirmBlock和cancelBlock,用来处理用户点击确认和取消按钮的操作。在实际使用中,我们需要对这两个回调块进行实现。

```

- (void)showWithConfirmBlock:(void (^)(void))confirmBlock cancelBlock:(void (^)(void))cancelBlock {

self.confirmBlock = confirmBlock;

self.cancelBlock = cancelBlock;

UIViewController *rootVC = [UIApplication sharedApplication].keyWindow.rootViewController;

[rootVC presentViewController:self animated:YES completion:nil];

}

```

在上面的代码中,我们定义了一个名为showWithConfirmBlock:cancelBlock:的方法,该方法用来显示UIAlertViewController并设置确认和取消按钮的事件。在该方法中,我们将confirmBlock和cancelBlock赋值给CustomAlertViewController类中定义的两个回调块,并获取当前应用程序的根视图控制器,然后调用presentViewController:animated:completion:方法显示UIAlertViewController。

4. 使用自定义弹窗

在实际使用CustomAlertViewController时,我们只需要创建该类的实例,并调用showWithConfirmBlock:cancelBlock:方法即可。

```

CustomAlertViewController *alertVC = [[CustomAlertViewController alloc] initWithTitle:@"提示" message:@"确定要退出登录吗?" confirmTitle:@"确定" cancelTitle:@"取消"];

[alertVC showWithConfirmBlock:^{

// 处理确认按钮的操作

} cancelBlock:^{

// 处理取消按钮的操作

}];

```

在上面的代码中,我们创建了一个CustomAlertViewController的实例,设置了标题、消息、确认按钮和取消按钮的标题,然后调用showWithConfirmBlock:cancelBlock:方法显示该弹窗。在回调块中,我们可以编写处理确认和取消按钮事件的代码。

总结

通过对UIAlertViewController进行封装,我们可以方便地复用该控件,并且可以将其与处理事件的代码分离,使得代码更加清晰和易于维护。在实际开发中,我们可以根据需要对CustomAlertViewController进行扩展,增加更多的属性和方法,以满足不同的需求。


相关知识:
免签封装
免签封装指的是将一个应用程序打包成一个安装包,并不需要签名即可安装和运行。这种方式可以绕过应用商店的审核,让开发者更加方便地发布应用程序。在某些情况下,免签封装也可以用于破解应用程序或者植入恶意代码,因此需要谨慎使用。免签封装的原理比较简单,主要有两种方式
2023-04-06
苹果免签版App
苹果免签版App是指在没有进行苹果官方签名的情况下,通过一些非官方的方式安装App到iOS设备上的方法。这种方式通常被称为“侧载”。原理:苹果官方签名是为了保证App的安全性和完整性,只有通过苹果官方签名的App才能被安装到iOS设备上。而免签版App的原
2023-04-06
IPA包修改
IPA包是iOS应用程序的安装包,它是通过苹果公司的签名机制来保证应用程序的安全性和合法性。但是,有些开发者或用户可能需要对IPA包进行修改,例如替换应用程序中的图片、修改应用程序的配置文件等。本文将介绍IPA包的结构和签名机制,以及如何对IPA包进行修改
2023-04-06
安卓app生成器
安卓app生成器是一种能够帮助用户快速生成安卓应用程序的工具。通过使用这种工具,用户可以避免繁琐的编程过程,快速实现自己的应用程序开发需求。下面将介绍安卓app生成器的原理和详细介绍。一、安卓app生成器的原理安卓app生成器的原理是利用预设的模板和组件,
2023-04-06
网址打包苹果
网址打包是指将一个或多个网页或网站的内容打包成一个可执行的应用程序,使得用户可以像使用普通应用程序一样使用这些网页或网站。苹果公司的iOS操作系统支持将网址打包成应用程序,这种应用程序被称为Web应用程序或简称为Web App。网址打包的原理是将网页或网站
2023-04-06
flutter打包ios要多少钱
Flutter是一种跨平台的移动应用程序开发框架,可以使用单个代码库创建iOS和Android应用程序。Flutter的一个最大的优势是其能够提供快速且高效的打包和发布流程。对于iOS开发者来说,Flutter的打包过程可能会比传统的原生开发更加复杂,因此
2023-04-06
越狱ipa网站
越狱IPA网站是提供iOS设备用户下载越狱应用程序的网站。在iOS系统中,由于苹果公司的限制,用户只能从官方应用商店下载和安装应用程序。而越狱则可以突破这个限制,让用户可以自由地安装第三方应用程序和插件。越狱IPA网站就是为了方便用户下载越狱应用程序而存在
2023-04-06
ios开发tcp_ip
TCP/IP协议是互联网通信的基础,它是一组用于实现互联网通信的协议。在iOS开发中,TCP/IP协议也是非常重要的,它被广泛应用于网络通信、数据传输、远程控制等方面。TCP/IP协议是由两个协议组成的:传输控制协议(TCP)和互联网协议(IP)。其中,I
2023-04-06
h5在线生成apk
H5在线生成APK是一种基于Web技术的解决方案,可以将HTML5网页应用转化为Android应用程序,从而使得开发者无需掌握Android开发技术,也可以轻松制作出一款具有Android应用特性的应用程序。下面将从原理和详细介绍两个方面来讲解H5在线生成
2023-04-06
自制安卓app
在现代社会中,手机已经成为我们日常生活中不可或缺的一部分。而其中最重要的组成部分就是app。随着技术的进步,越来越多的人开始尝试自制安卓app,以满足个人需求或者商业用途。本文将介绍自制安卓app的原理和详细步骤。一、原理在设计安卓app之前,我们需要先了
2023-04-06
全民股东
2019-01-17
使用极光推送给手机网页打包的APP推送消息
怎么使用一门APP的消息推送功能。首先需要自行配置消息接口(网站打包app增加原生消息推送功能)配置好极光推送接口之后,进入【用户中心推送管理】如图,点击新增消息推送!弹出消息推送界面!按照自己的需求推送消息即可!相关教程:网站打包app增加原生消息推送功
2017-04-25