免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持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
网站封装电脑软件
网站封装电脑软件是指将一个软件程序打包成一个独立的安装包,使得用户可以在没有网络连接的情况下轻松地安装和使用该软件。封装软件可以帮助开发人员节省时间和精力,同时也可以使软件更加易于分发和安装。封装软件的原理是将软件程序及其所需的文件、库和配置信息打包成一个
2023-04-06
在线 webclip
Web Clip是一种将网络内容转化为小部件的技术,它可以将网页的一部分或者整个页面转换成一个小部件,然后将其嵌入到桌面或者其他应用程序中。Web Clip技术在移动设备上的应用非常广泛,它可以将网页内容转换成小部件,方便用户随时随地浏览网页内容。Web
2023-04-06
一门云
云计算是一种基于互联网的计算方式,它通过共享计算资源,提供可扩展的、灵活的和可靠的计算服务,以满足用户的需求。云计算可以提供各种计算服务,包括计算、存储、网络、数据库、分析、人工智能等。云计算的基础是虚拟化技术。虚拟化技术可以将一台物理服务器分成多个虚拟服
2023-04-06
ios后台的APNs Auth key
APNs(Authentication Provider Tokens)是苹果推送通知服务的认证方式之一,而APNs Auth key则是用于生成APNs token的密钥。APNs Auth key的原理是使用非对称加密方式生成JWT(Json Web
2023-04-06
ios ipa
iOS IPA 文件是一种应用程序安装包,通常用于在 iOS 设备上安装应用程序。IPA 文件可以被认为是 iOS 应用程序的一个压缩包,其中包含了应用程序的所有文件、资源和元数据信息。在本文中,我们将详细介绍 iOS IPA 文件的原理和特点。一、IPA
2023-04-06
xapk转换apk
XAPK文件是一种在Android应用程序中常用的文件格式,通常包含了APK文件和OBB数据文件。然而,有时候我们需要将XAPK文件转换成APK文件,以便更方便地安装和使用。本文将介绍XAPK转换成APK的原理和详细步骤。一、XAPK转换成APK的原理XA
2023-04-06
手机网页封装app
随着智能手机的普及,越来越多的网站开始适配移动端。但是,访问网站需要打开浏览器,输入网址,这对于一些频繁使用的网站来说,显得不够方便。因此,一些开发者开始尝试将网页封装成app的形式,使得用户可以更方便地访问网站。本文将介绍手机网页封装app的原理和实现方
2023-04-06
apk编辑工具
APK编辑工具是一种用于编辑Android应用程序包(APK)的工具。这些工具可以用于修改应用程序的功能、布局、图标和其他元素,以及添加新的功能和功能。以下是有关APK编辑工具的原理和详细介绍。1. 原理APK编辑工具的原理是通过解压缩APK文件,将其中包
2023-04-06
fir im ios在线打包
Fir是一个iOS在线打包平台,可以让开发者将自己的iOS应用上传至平台进行打包,并提供了丰富的应用管理功能,包括应用更新、应用统计等等。本文将介绍Fir的原理和详细操作流程。一、Fir的原理Fir的原理很简单,就是通过在云端搭建iOS打包环境,来实现在线
2023-04-06
diy app
DIY APP 是指通过自己的创意和技术,自主开发出一款移动应用程序。现在移动应用开发技术日益成熟,DIY APP已经成为了一种趋势,越来越多的人开始尝试自己开发一款APP。DIY APP 的原理主要是基于移动应用开发技术,包括前端开发技术和后端开发技术。
2023-04-06
apk自签
APK自签是指开发者自己给自己的应用签名,而不是通过第三方签名机构进行签名。APK自签的实现原理包括以下几个步骤:1. 生成签名证书首先需要生成一对公私钥,然后使用私钥生成签名证书。签名证书包括证书的所有者信息、公钥、签名算法等信息。签名证书的生成可以通过
2023-04-06