免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持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-11-09
安卓项目打包成apk
在安卓开发中,将项目打包成APK是必不可少的一步。APK是Android Package的缩写,是安卓应用程序的安装包。打包成APK后,用户可以通过下载安装包来安装应用程序。下面是打包成APK的原理和详细介绍。一、原理打包成APK的主要原理是将项目中的代码
2023-04-06
拖拽制作app
拖拽制作app是一种非常流行的app制作方式,它可以让任何人都可以轻松制作自己的应用程序,无需具备编程技能。拖拽制作app的实现原理主要基于所谓的“无代码”或“低代码”平台,这些平台提供了一系列的工具和组件,使得用户可以通过简单的拖拽方式来创建应用程序。拖
2023-04-06
网站打包apk工具
网站打包apk工具是一种将网站打包成apk应用程序的工具,可以让用户将网站作为应用程序在移动设备上运行。这样一来,用户就可以在不需要访问网站的情况下使用网站的所有功能。本文将详细介绍网站打包apk工具的原理和使用方法。一、原理网站打包apk工具的原理是将网
2023-04-06
linux 打包 生成 apk
在 Android 开发中,我们经常需要将代码打包成 APK 文件进行发布或测试。而在 Linux 系统中,我们可以使用命令行工具来完成 APK 的打包生成。本文将介绍 Linux 下如何打包生成 APK 文件的原理和详细步骤。## APK 文件结构在开始
2023-04-06
安卓安装包制作 apk
APK,即Android application package,是Android系统中的应用程序包。它是一种压缩文件格式,包含了应用程序的所有文件和资源,以及与应用程序相关的一些信息,如应用程序名称、版本号、权限等。APK是Android应用程序发布和安
2023-04-06
后台管理app功能上架下架
后台管理app的上架下架功能是指管理员可以通过后台管理系统对某个应用进行上架或下架操作。这个功能在应用商店或应用市场中非常常见,可以让应用的开发者或管理员更好地掌控应用的流通情况。下面将详细介绍后台管理app的上架下架功能的原理和实现方法。一、上架下架功能
2023-04-06
菜单制作软件app
菜单制作软件app是一种可以帮助餐厅或咖啡馆等餐饮场所制作菜单的软件。它可以帮助餐饮店主快速制作出美观、易读、易懂的菜单,提高顾客的点餐效率,增加营业额。下面将详细介绍菜单制作软件app的原理和功能。1. 原理菜单制作软件app的原理是利用计算机技术和图形
2023-04-06
pc端可以转app
在互联网时代,移动互联网已经成为人们生活中不可或缺的一部分,各种应用程序也随之而来。对于一些网站博主,如果能够将自己的网站转换成APP,那么将会带来更多的用户和流量,提高网站的知名度和影响力。那么,PC端如何转换成APP呢?下面就来详细介绍一下。一、什么是
2023-04-06
脱壳ipa
在iOS开发中,IPA是一种常见的应用程序包格式。由于iOS系统的安全性较高,一些应用程序可能会被加密保护,使得开发者无法直接查看或修改其中的代码。这时候,脱壳IPA就成为了解决这个问题的一种方法。脱壳IPA的原理是通过将应用程序包中的加密保护去除,使得开
2023-04-06
在线网站生成ipa
IPA(iOS App Store Package)是iOS应用程序的安装包格式。在发布应用程序之前,开发人员需要将其打包为IPA文件。然而,对于一些没有开发经验的人来说,生成IPA文件可能会比较困难。不过,现在有许多在线网站可以帮助用户生成IPA文件,这
2023-04-06
baidu apk
百度是中国最大的搜索引擎之一,其拥有着丰富的资源和用户群体,成为了中国互联网的重要组成部分。百度推出了自己的移动应用程序,称为“百度搜索”,这个应用程序可以在Android和iOS设备上使用。在本文中,我们将介绍百度搜索apk的原理和详细介绍。第一部分:原
2023-04-06