免费试用

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


相关知识:
android 项目打包成aar
Android 应用程序打包成 aar(Android Archive) 文件是一种将 Android 应用程序库打包成单个文件的方式。aar 文件通常包含了一个或多个 Android 应用程序模块的代码和资源。此外,aar 文件还可以包含一些库的元数据和
2023-04-06
android开发平台
Android是一种移动操作系统,基于Linux内核,由Google主导开发,主要应用于智能手机和平板电脑等移动设备。Android开发平台是指一套用于开发Android应用程序的软件开发工具包(SDK),包括一系列的API和工具,使得开发人员可以创建高质
2023-04-06
php 域名封装android
PHP域名封装是一种将域名解析和访问封装在一起的技术。在Android开发中,使用PHP域名封装可以实现通过解析PHP文件获取服务器地址,从而实现访问服务器的功能。下面将详细介绍PHP域名封装在Android开发中的实现原理和具体步骤。一、实现原理在And
2023-04-06
web 保存ios快捷方式
在iOS设备上保存Web快捷方式是一种非常方便的方式,它可以让用户快速访问他们最喜欢的网站,而不必每次都输入网址或使用搜索引擎。本文将介绍如何在iOS设备上保存Web快捷方式,以及它的原理。一、如何在iOS设备上保存Web快捷方式在iOS设备上保存Web快
2023-04-06
在线打包和手动打包
打包是指将一些文件或者代码等打包成一个文件或者一个压缩包的过程。在互联网领域,打包是一个非常重要的操作。因为互联网上的应用程序、网站等都需要通过打包来进行发布、更新等操作。在打包的过程中,有两种方式可以选择:在线打包和手动打包。在线打包是指通过一些在线工具
2023-04-06
App上架
App上架是指将开发好的移动应用程序提交到应用商店进行审核,审核通过后才能在应用商店上架销售。本文将介绍App上架的原理和详细流程。一、App上架原理App上架的原理是将应用程序提交到应用商店,应用商店对应用进行审核,审核通过后将应用发布在应用商店上架销售
2023-04-06
在线APP生成工具
随着移动互联网的发展,APP已经成为了人们生活中不可或缺的一部分。然而,对于大多数人来说,开发一款APP是一项艰巨的任务,需要掌握复杂的编程技术和专业的知识。因此,为了满足用户的需求,一些在线APP生成工具应运而生,旨在帮助普通人快速创建自己的APP,无需
2023-04-06
ttf转apk
TTF(TrueType Font)是一种字体文件格式,而APK(Android Package)则是安卓应用程序的打包格式。有时候我们需要将TTF字体文件转换为APK文件,以便在安卓系统中使用。本文将介绍如何进行TTF转APK的操作,包括原理和详细步骤。
2023-04-06
苹果ios应用包
苹果iOS应用包是一种特殊的文件格式,也被称为IPA文件。这个文件包含了应用程序的所有代码、资源和元数据等内容。在应用程序开发完成后,开发者需要将其打包成一个IPA文件,然后通过苹果的App Store或其他渠道发布给用户下载安装。下面将详细介绍苹果iOS
2023-04-06
iphone5s的ipa
iPhone 5s的ipa是iOS应用程序的安装包文件。ipa文件是由苹果公司制定的一种应用程序分发方式,通过iTunes或者App Store进行分发和安装。ipa文件包含了应用程序的二进制文件和相关资源文件,还包括应用程序的元数据信息和签名。在应用程序
2023-04-06
ios applog在线生成
iOS Applog是苹果公司提供的一种应用程序日志记录工具,它可以在应用程序运行时记录各种事件和信息,帮助开发人员诊断和调试iOS应用程序。iOS Applog可以记录从应用程序启动到关闭期间的所有事件和信息,包括应用程序崩溃、网络请求、用户交互、应用程
2023-04-06
apk的入口网址
APK(Android Package Kit)是Android操作系统的应用程序安装包,类似于Windows操作系统的.exe文件。APK文件可以通过各种方式获取,例如从Google Play商店下载、从第三方应用商店下载、从网站下载等。在这篇文章中,我
2023-04-06