免费试用

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


相关知识:
linux h5打包apk
在移动应用开发中,Android和iOS是两个最流行的平台。而在Android平台上,很多应用都是使用Java语言开发的,因此,如果我们想要将一个使用HTML5和JavaScript开发的应用程序打包成一个Android应用程序,就需要用到一些工具和技术。
2023-04-06
webclip 封装
WebClip是一种在iOS中添加到主屏幕的简单方式,它可以将一个网站封装成一个应用程序的形式。WebClip的实现原理是通过在iOS系统中创建一个基于Web的应用程序,这个应用程序包含了一个特定的URL,当用户点击该应用程序时,它会打开一个Safari浏
2023-04-06
ios免签应用封装
iOS免签应用封装,是指在不需要通过苹果官方审核的情况下,将应用打包成IPA文件并安装到设备上的过程。这种方式通常用于企业内部应用或者第三方应用商店的发布。一般来说,iOS应用必须通过苹果官方审核才能在App Store上架,而且只能从App Store上
2023-04-06
react开发移动端
React是一个由Facebook开发的JavaScript库,用于构建用户界面。它可以用于Web应用程序和移动应用程序的开发。React的主要特点是组件化、虚拟DOM和单向数据流。在移动应用开发中,React Native是React的衍生版本,它可以使
2023-04-06
ios ipa
iOS IPA 文件是一种应用程序安装包,通常用于在 iOS 设备上安装应用程序。IPA 文件可以被认为是 iOS 应用程序的一个压缩包,其中包含了应用程序的所有文件、资源和元数据信息。在本文中,我们将详细介绍 iOS IPA 文件的原理和特点。一、IPA
2023-04-06
续签软件ipa
续签软件 IPA 是一种在 iOS 设备上安装的应用程序包,可以从第三方应用商店或开发者网站下载。然而,由于苹果公司的安全限制,这些应用程序只能在设备上运行一段时间,通常为七天或一个月。为了让这些应用程序继续在设备上运行,需要进行续签操作。本文将介绍续签软
2023-04-06
安卓开发apk
APK是Android应用程序包的缩写,是Android平台上的应用程序文件格式,可用于安装和分发应用程序。在安卓开发中,创建APK文件是非常重要的一步。下面详细介绍APK的原理和制作过程。一、APK的原理APK是由Android开发工具包(SDK)编译生
2023-04-06
ios网页封装
iOS网页封装是一种将网页封装成iOS应用程序的技术。它可以将网页转化为一个独立的iOS应用程序,用户可以在应用程序中直接访问网页,而不必再使用浏览器。iOS网页封装技术的出现,使得网页应用可以像原生应用一样运行在iOS设备上,为用户提供更好的使用体验。i
2023-04-06
简易apk转ios
在移动应用开发领域,Android和iOS是最主流的两个平台。然而,有时候我们需要将已经开发好的Android应用转换成iOS应用,这就需要进行apk转ios的操作。本文将介绍apk转ios的原理和详细操作。一、apk转ios的原理在Android和iOS
2023-04-06
苹果ipa文件自签工具
苹果IPA文件自签工具是一种可以帮助苹果用户在不经过官方认证的情况下安装第三方应用的工具。该工具的原理是通过将IPA文件重新打包并签名,将其伪装成苹果官方应用以绕过iOS系统的限制。下面将为您详细介绍这一工具的原理。首先,我们需要了解什么是IPA文件。IP
2023-04-06
windows开发ios
在过去,Windows和iOS是两个完全不同的操作系统,无法在同一台设备上运行。但是,随着技术的不断发展,现在有多种方法可以在Windows上开发iOS应用程序。本文将介绍这些方法的原理和详细信息。1. 使用虚拟机虚拟机是一种软件,它可以模拟一个完整的计算
2023-04-06
android打包打包aab文件
Android应用程序打包可以生成APK或者AAB文件。APK文件是Android应用程序的标准打包格式,而AAB文件是Android应用程序捆绑格式。与APK文件不同,AAB文件只包含应用程序的编译代码和资源,并且不包含未使用的代码和资源。这样,AAB文
2023-04-06