免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持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 apk制作
Android APK制作是一项相对复杂的技术工作,需要掌握一定的Android应用程序开发技术和相关工具的使用。本文将从原理和详细步骤两个方面介绍Android APK制作的过程。一、原理APK是Android应用程序的安装包,它实际上是一个压缩文件,包
2023-04-06
webview vue 混合开发
WebView Vue混合开发是一种将Web技术和Native技术结合起来的开发方式,它能够有效地解决Native应用开发中的一些问题,比如性能、兼容性和开发成本等问题。原理WebView是Android系统提供的一种组件,它可以在应用中嵌入Web页面,从
2023-04-06
app生成
App生成是一种通过在线平台或软件工具,可以快速生成应用程序的技术。通过这种技术,用户可以轻松地创建自己的应用程序,无需编写代码或雇佣专业开发人员。本文将介绍App生成的原理和详细信息。App生成的原理App生成的原理是将用户提供的各种数据,如图片、文字、
2023-04-06
网站转换成app
将网站转换成app是一种将网站内容转换成移动应用程序的方式。这种转换可以让用户更方便地访问网站内容,而无需在浏览器中输入网址。在本篇文章中,我们将介绍网站转换成app的原理以及详细步骤。一、原理网站转换成app的原理是将网站内容打包成一个移动应用程序。这种
2023-04-06
开发app 设置自定义useragent
在开发 App 的过程中,有时候需要设置自定义 UserAgent(用户代理),以便识别 App 的来源以及提供更好的体验。本文将介绍 UserAgent 的概念、作用、设置方法以及一些注意事项。一、什么是 UserAgent?UserAgent 是指代表
2023-04-06
vue 打包成apk
Vue是一种流行的JavaScript框架,它可以使开发人员轻松地构建交互式Web应用程序。然而,有时候你可能需要将Vue应用程序打包成APK(Android应用程序包),以便将其部署到移动设备上。本文将介绍如何将Vue应用程序打包成APK,以及打包的原理
2023-04-06
手机制作apk工具安卓版
手机制作 APK 工具是一种可以将网页、应用程序等文件转换为 APK 安装文件的工具,从而可以在安卓手机上直接安装和使用。使用这种工具可以方便地将自己的网站或应用程序发布到安卓平台上,提高用户的便利性和体验。下面介绍一下手机制作 APK 工具的原理和详细介
2023-04-06
ipa文件修改
IPA文件是iOS应用程序的安装包,它包含了应用程序的二进制文件、资源文件和配置文件等。在某些情况下,我们需要修改IPA文件,例如添加某些功能或者修改某些配置。下面将介绍如何修改IPA文件。首先,我们需要将IPA文件进行解压缩。我们可以使用解压缩工具,如W
2023-04-06
软件生成apk
APK(Android Package Kit)是Android操作系统的应用程序包,它包含了应用程序的所有组件和资源文件。在Android系统中,APK是安装应用程序的标准格式。因此,生成APK是开发Android应用程序的重要一环。本文将介绍APK的生
2023-04-06
繁体版打包工具
繁体版打包工具是一种用于将简体中文版软件转化为繁体中文版软件的工具。其原理是通过对软件中的文字资源进行修改,将简体中文文字替换为繁体中文文字,从而实现软件的繁体化。下面将对繁体版打包工具的原理和详细介绍进行阐述。一、繁体版打包工具的原理繁体版打包工具的原理
2023-04-06
jingleui 打包apk
JingleUI 是一个基于 React Native 的 UI 库,提供了一些常用的 UI 组件和一些常用的工具函数,让开发者可以更加方便快捷地搭建 React Native 应用。在开发完 React Native 应用后,我们通常需要将其打包成 AP
2023-04-06
简易apk转ios
在移动应用开发领域,Android和iOS是最主流的两个平台。然而,有时候我们需要将已经开发好的Android应用转换成iOS应用,这就需要进行apk转ios的操作。本文将介绍apk转ios的原理和详细操作。一、apk转ios的原理在Android和iOS
2023-04-06