免费试用

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


相关知识:
机智云在线app开发方式
机智云在线App开发方式是一种基于物联网技术的应用开发方式,通过机智云平台提供的开发工具和服务,可以快速构建和部署物联网应用程序。以下是机智云在线App开发方式的详细介绍。一、机智云平台概述机智云平台是一个物联网开发和应用平台,提供了一系列的开发工具和服务
2023-04-06
android开发艺术探索pdf
《Android开发艺术探索》是一本经典的Android开发书籍,由郭霖所著。本书从Android应用的架构设计、性能优化、内存管理、网络编程、安全性等多个方面进行深入剖析,旨在帮助开发者深入理解Android开发的本质,提高开发效率和质量。本书的第一部分
2023-04-06
webClip 封装
WebClip 封装是一种将网页打包成一个应用程序的技术。这种技术可以让用户通过应用程序的形式来访问网页,而不需要通过浏览器来进行访问。这种技术对于一些常用网页的访问非常便利,可以让用户快速地打开需要的网页,而不需要进行繁琐的浏览器操作。本文将介绍 Web
2023-04-06
一门开发者
一门开发者指的是一种编程语言,也可以称为编程语言。编程语言是计算机程序设计中使用的一种语言,用于编写计算机程序以实现特定的算法和功能。不同的编程语言有不同的语法和规则,但它们共同的目标是使程序员能够有效地编写代码来实现特定的功能。一门开发者可以分为两种类型
2023-04-06
免费开发软件制作平台
随着互联网技术的不断发展,越来越多的人开始关注和学习软件开发。然而,对于初学者来说,找到一款好用的开发软件并不容易。因此,出现了许多免费的开发软件制作平台,帮助初学者快速入门,开发自己的软件。一、什么是开发软件制作平台?开发软件制作平台指的是一种软件开发工
2023-04-06
app schema
App schema,也被称为应用程序架构,是指一种用于构建应用程序的软件架构。它是一种模式,用于定义应用程序的组件、数据流和逻辑。App schema可以帮助开发人员快速构建应用程序,同时提高应用程序的可维护性和可扩展性。App schema的原理是将应
2023-04-06
ipa应用
IPA应用是iOS系统下的一种应用安装包格式,类似于Android系统下的APK格式。IPA应用可以通过苹果官方的App Store进行下载和安装,也可以通过第三方应用商店或者自行打包安装。在iOS系统下,IPA应用的安装需要通过苹果公司的签名验证机制,也
2023-04-06
jar转apk
在Android开发过程中,我们经常需要使用.jar文件,但是在发布应用时,我们需要将这些.jar文件转换成.apk文件。那么,如何将.jar文件转换成.apk文件呢?下面就来详细介绍一下。1. 什么是.jar文件?.jar文件是Java Archive的
2023-04-06
网页加壳生成apk
网页加壳生成apk是一种将网页封装成apk文件的技术,可以让用户在手机上直接打开网页,而无需通过浏览器等其他应用程序。这种技术通常用于将网站转换成移动应用程序,以便更好地适应移动设备的使用。网页加壳生成apk的原理是将网页的HTML、CSS和JavaScr
2023-04-06
apk文件生成链接器
APK文件生成链接器是一种工具,用于将Android应用程序打包成APK文件。APK(Android应用程序包)是Android操作系统上安装程序的标准格式。APK文件包含应用程序的代码、资源和清单文件。APK文件生成链接器将这些文件打包到一个单独的文件中
2023-04-06
各大企业apk谁打包
APK(Android Package Kit)是Android应用程序的安装包格式,是一种类似于Windows上的.exe文件的安装包格式。在Android系统中,APK文件是应用程序的载体,也是应用程序的发布方式之一。对于各大企业而言,他们需要将自己的
2023-04-06
一、注册开发者账号
    第一步:打开一门APP平台(www.yimenapp.net)网站,推荐使用谷歌浏览器    第二步:点击【制作APP】    如图:    或通过链接http://w
2017-04-20