门户网站做成app
门户网站是互联网上颇具人气的子类别之一,是用户获取各种信息和列举链接的平台。门户网站中通常会包含大量的资讯、娱乐、社区、分类信息等内容。现如今,越来越多的人开始使用各种移动设备,而移动设备上的app已经成为我们生活中不可或缺的一部分。因此,将门户网站转换成移动app已成为网站运营者的必备技能。门户网...
2023-10-13 围观 : 4次
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已成为网站运营者的必备技能。门户网...
Flutter是一种由谷歌开发的跨平台移动应用开发框架,它可以同时在iOS和Android平台上运行。阿里视频是一款非常受欢迎的视频播放应用,本文旨在介绍如何使用Flutter开发一个类似于阿里视频的应用。首先,我们需要确保已经安装了Flutter SDK,并且配置好了开发环境。接下来,我们可以创建一个新的Flutter项目并添加所需的依赖...
随着移动互联网的快速发展,APP已经成为人们生活中不可或缺的一部分。与此同时,移动设备的不断更新换代,市场上存在着各种类型的APP。对于一些企业和机构来说,如何让自己的APP在市场中脱颖而出成为了一项迫切的任务。在这种情况下,定制开发APP成为了一种不错的选择。定制开发APP是指根据客户的需求和规划...
vivo安卓开发版是vivo手机推出的一款基于原生安卓系统的开发版,具有更高的可定制性和更方便的开发环境,可以让开发者更加方便地进行安卓应用开发和测试。原理:vivo安卓开发版基于原生的安卓系统,通过对系统的优化和修改,增强了系统的可靠性和性能,并提供了更丰富的系统级功能接口和开发工具。同时,viv...
Web App开发框架是一种用于开发Web应用程序的软件框架,它提供了一些通用的功能和工具,用于简化Web应用程序的开发流程。这些框架可以帮助开发人员快速构建Web应用程序,同时还可以提高代码的可维护性和可扩展性。Web App开发框架通常包含以下几个核心组件:1.路由器:负责处理URL请求和路由转...