免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持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进行扩展,增加更多的属性和方法,以满足不同的需求。


相关知识:
ios自签ipa免电脑工具
iOS自签IPA是指通过一些工具和方法,将未经过苹果官方认证的应用打包成IPA文件,并在iOS设备上安装和使用。这种方法可以绕过苹果官方的审核和限制,让用户可以自由安装和使用一些非官方渠道获取的应用。自签IPA的原理主要是通过一些工具和方法,将未经过苹果官
2023-04-06
app生成器
App生成器是一种可以帮助非专业开发者快速创建自己的应用程序的工具。通过这种工具,即使没有编程经验的人也可以创建自己的应用程序,而不需要雇佣专业的开发人员。那么,这种神奇的工具是如何工作的呢?本文将介绍App生成器的原理和详细信息。App生成器的原理App
2023-04-06
app网页打包
App网页打包,也称为Web App打包,是将网页应用程序打包成本地移动应用程序的过程。这种技术使得开发人员能够使用现有的Web技术来开发跨平台的移动应用程序,而不需要使用各种不同的编程语言和开发工具来为不同的平台进行开发。App网页打包的原理是将网页应用
2023-04-06
网页转APP
随着移动互联网的飞速发展,越来越多的网站和应用程序开始向移动端转型,推出自己的APP。但是,对于一些小型网站或者是刚刚起步的企业来说,开发一款APP是一项非常耗费时间和资源的任务。因此,网页转APP成为了一种非常受欢迎的解决方案。那么,网页转APP的原理是
2023-04-06
windows 客户端 开发
Windows 客户端开发是指在 Windows 操作系统上开发应用程序的过程。Windows 客户端应用程序可以是桌面应用程序、Windows 服务、控制台应用程序等等。在这篇文章中,我们将探讨 Windows 客户端开发的原理和详细介绍。Windows
2023-04-06
html 打包成exe 工具
HTML是一种标记语言,用于创建Web页面。在Web开发中,HTML是必不可少的一部分。但是,在某些情况下,我们可能需要将HTML文件打包成一个可执行文件,以便于在没有浏览器的情况下运行。本文将介绍HTML打包成EXE的原理和一些工具。1. 原理将HTML
2023-04-06
iOS P8
iOS P8是一种iOS设备的破解方法,它可以让用户越狱自己的设备,获取更多的权限和功能。下面是对iOS P8的详细介绍。1. 什么是iOS P8?iOS P8是一种越狱工具,它可以让用户绕过iOS系统的限制,获取更多的权限和功能。iOS系统是一个相对封闭
2023-04-06
ipa免签安装
IPA免签安装是指在不需要通过Apple官方认证的情况下,将iOS应用程序(IPA文件)安装到设备上的一种方法。IPA免签安装不需要越狱,不需要支付开发者账号的费用,非常适合开发者和普通用户。本文将介绍IPA免签安装的原理和详细步骤。一、原理IPA免签安装
2023-04-06
离线网页转apk
离线网页转apk是一种将网页内容打包成apk应用程序的方法,使用户可以在没有网络连接的情况下访问网页。这种方法主要使用在一些需要离线阅读的网页上,例如电子书、学习资料等。本文将介绍离线网页转apk的原理和详细步骤。一、原理离线网页转apk的原理是将网页的H
2023-04-06
webapp打包平台aab
随着移动互联网的发展,越来越多的企业开始将自己的业务转移到移动端,而开发一个优秀的移动应用需要经过很多的步骤,其中一个重要的步骤就是打包。aab是一种新的Android应用打包格式,它是Google在2018年发布的,目的是为了替代之前的apk格式,aab
2023-04-06
ipa文件为ios版自签包
IPA文件是用于iOS设备的应用程序包,它是由苹果公司开发的一种格式,可以在iPhone、iPad或iPod Touch等iOS设备上安装和运行应用程序。在开发iOS应用程序时,通常需要将应用程序打包为IPA文件,并将其安装到设备上进行测试或分发。自签名是
2023-04-06
苹果ipa文件自签工具
苹果IPA文件自签工具是一种可以帮助苹果用户在不经过官方认证的情况下安装第三方应用的工具。该工具的原理是通过将IPA文件重新打包并签名,将其伪装成苹果官方应用以绕过iOS系统的限制。下面将为您详细介绍这一工具的原理。首先,我们需要了解什么是IPA文件。IP
2023-04-06