免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持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文件,以供其他开发者使用。这些通用的代码可能是自己编写的一些工具类,也可能是一些第三方库。本文将介绍如何打aar包。首先,我们需要了解aar文件的结构。aar文件实际上是一个zip文件,包含了
2023-04-06
android 打包 jar
在Android开发中,我们常常需要将一些常用的代码打包成jar包,以便在不同的项目中复用。打包jar包可以方便我们在不同的项目中使用相同的代码,同时也可以提高代码的复用性和可维护性。下面将介绍Android打包jar的原理和详细步骤。一、打包jar的原理
2023-04-06
app引导页
APP引导页是指在用户第一次打开某个APP时,为了提高用户体验和用户对APP的认知度,设计的一种页面。通常情况下,APP引导页会包括APP的特色功能介绍、操作指引、用户隐私政策等内容。本文将对APP引导页的原理和详细介绍进行阐述。一、APP引导页的原理AP
2023-04-06
app制作器
App制作器是一种可以帮助普通人制作移动应用程序的工具。它的出现,让没有编程技能的人也能轻松制作属于自己的应用程序,无需雇佣专业的开发人员,也不需要掌握复杂的编程语言。本文将详细介绍App制作器的原理和工作流程。App制作器的原理App制作器的原理是基于所
2023-04-06
安卓 IOS 二码合一
安卓和IOS系统是目前市场上最为流行的两种移动操作系统,它们各自拥有的用户数量和市场份额都非常大,因此开发人员需要同时为这两种系统开发应用程序,以确保能够覆盖尽可能多的用户。然而,为了方便用户,有时候我们需要将安卓和IOS的二维码合并成一个二维码,这样用户
2023-04-06
ios p8 key
iOS P8 Key,也称为APNS Auth Key,是iOS系统中用于推送通知的认证密钥。在iOS系统中,APNS(Apple Push Notification Service)是用于发送推送通知的服务。通过APNS,开发者可以向用户的设备发送推送通
2023-04-06
h5打包成app跟原生app区别
HTML5是一种用于网页设计和开发的标记语言,它可以让开发者使用一套代码来构建多个不同设备上的网页应用程序。而将H5打包成App,则是将H5应用程序打包成一个本地应用程序,可以在移动设备上运行。相比于原生App,H5打包成App的优点在于:1. 跨平台性:
2023-04-06
获取app签名 在线
在Android开发中,应用程序签名是非常重要的。签名可以确保应用程序的完整性,防止他人篡改应用程序并发布恶意版本。因此,获取应用程序签名对于开发人员及应用程序的使用者来说都是非常重要的。应用程序签名是由证书颁发机构颁发的数字证书,称为Keystore。K
2023-04-06
vant webapp
Vant是一个基于Vue.js的移动端UI组件库,是由有赞前端团队开发和维护的。它提供了很多常用的UI组件,如按钮、表单、弹窗、导航、轮播图等等,可以帮助开发者快速搭建移动端应用。Vant的特点是轻量、易用、灵活和高效。它的体积非常小,只有几十KB,可以快
2023-04-06
安卓主题在线制作
安卓主题制作是指通过一系列的操作和设计来打造出符合自己口味的手机主题,让手机的界面更加个性化。在这里,我们将介绍一种基于在线制作的安卓主题制作方法。首先,我们需要选择一个适合的在线安卓主题制作平台。目前市面上有很多在线主题制作平台,如MyColorScre
2023-04-06
ios软件一键生成
iOS软件的一键生成,指的是利用一些工具或平台,将开发者提供的APP源代码自动生成可在iOS设备上运行的APP文件。这种方法的优势在于,可以减轻开发者的工作量,提高APP开发效率,尤其对于小型团队或个人开发者来说,更加方便快捷。一般来说,iOS软件的一键生
2023-04-06
shell 打包 ipa
在iOS开发中,我们通常需要将代码打包成ipa文件以便于上传到App Store或者在内部分发给团队成员。而打包ipa文件的过程中,使用shell脚本可以提高打包的自动化程度,减少重复工作的时间和人力成本。首先,我们需要了解一下ipa文件的结构。ipa文件
2023-04-06