IDMAlertViewManager 1.1

IDMAlertViewManager 1.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2014年12月

Flávio Caetano 维护。



  • 作者
  • Ideais Mobile

IDMAlertViewManager 是开发用来帮助您减轻处理不同优先级弹窗的问题的,并且专注于一次性只显示一个弹窗,将默认网络错误信息集中在一个类中。

安装

简单地将 pod 'IDMAlertViewManager' 添加到您的 Podfile 中。另外,您还可以将 Classes 文件夹中的文件复制到您的项目中。

我们建议将其导入到项目的 .pch 中以方便访问,您也可以使用 UIAlertViewManager 在每个类中进行导入。

使用

IDMAlertViewManager 完全覆盖了 UIAlertView 的使用。实际上,您不应再调用任何 UIAlertView。让我们为您处理。

您可能想要做的第一件事是为连接错误警报设置默认的 titlemessage。将其追加到您的 AppDelegate 中的 applicationDidFinishLaunching: 方法底部

[IDMAlertViewManager setDefaultConnectionErrorTitle:@"Network Connectivity Error" 
                                            message:@"Couldn't reach the server. Please, try again."];

// You may also want to provide other buttons to dismiss the window:
[IDMAlertViewManager setDefaultConnectionErrorTitle:@"Network Connectivity Error" 
                                            message:@"Couldn't reach the server. Please, try again."
                                            buttons:@[@"Cancel", @"Refresh"]];

要显示默认的连接错误弹窗,必须调用 [IDMAlertViewManager showDefaultConnectionFailureAlert]。或者您可以发送块以在成功或失败时执行

[IDMAlertViewManager showDefaultConnectionAlertWithSuccess:^(NSUInteger selectedIndex) {
    // Something to do when the user dismisses the alert view
} failure:^(NSError *error) {
    // Usually called when another alert with higher priority must appear.
    // May also mean that the alert was dismissed programmatically.
    // You can find the error cause comparing error.code against the enum IDMAlertError
}];

连接错误警报始终使用默认优先级(IDMAlertPriorityMedium)。IDMAlertViewManager 将 OK 添加为默认关闭按钮的文本,但您可以使用 [IDMAlertViewManager setDefaultDismissalButton:@"Cancel"] 进行更改。

其他警报

可用最完整的方法是

[IDMAlertViewManager showAlertWithTitle:@"Title"
                                message:@"Message"
                               priority:IDMAlertPriorityHigh
                                success:^(NSUInteger selectedIndex) {
                                    // Do something after dismissing the alert
                              } failure:^(NSError *error) {
                                    // Oops! Something went wrong!
                              } buttons:@[@"Yes", @"No"]];

您还可以提供要显示的根据优先级显示的 UIAlertView 实例

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title
                                                    message:message
                                                   delegate:self
                                          cancelButtonTitle:@"Cancel"
                                          otherButtonTitles:@"OK", nil];

[IDMAlertViewManager showAlertView:alertView priority:IDMAlertPriorityMedium];

优先级

有四个主要优先级,但可以提供任何无符号整数将优先级设置给弹窗。值越低,优先级越高。

如果屏幕上有一个弹窗,另一个优先级更高的弹窗尝试出现,当前弹窗将被关闭,调用其 errorBlock,新的弹窗将占据屏幕的位置。将只显示一个弹窗。

如果一个与现有弹窗具有相同或更低优先级的弹窗尝试出现在顶部,它将不会显示,如果没有设置 nil,其 errorBlock 将被调用。

以下是从 IDMAlertPriority 枚举中预定义的优先级。

优先级 含义
IDMAlertPriorityDEFCON 0 最高优先级。仅在紧急情况下使用。
IDMAlertPriorityHigh 10 用于重要但非关键警报。
IDMAlertPriorityMedium 25 默认优先级。如果没有设置,将分配此值。在连接错误警报中使用。
IDMAlertPriorityLow 50 低优先级警报。

您可以检查完整文档以获取更多信息。

兼容性

IDMAlertViewManager的测试类是使用Apple的新框架XCTest编写的,因此它只针对iOS 7进行测试,因为早期版本(<= iOS 6.1)与XCTest不兼容。

然而,IDMAlertViewManager不使用iOS 5.1之前的任何内容,因此它可以成功运行在从iOS 5.1到更高版本的任何iOS版本上。但请注意,任何进一步的开发都只能在iOS 7上进行测试!

许可

IDMAlertViewManager受MIT许可证许可

版权所有(c) 2013 Ideais Mobile (http://www.ideais.com.br/divisao-mobile/)

在此特此授予任何获得本软件及相关文档文件(“软件”)副本的任何人完全免费的许可,以在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许软件接受人做上述事项,但须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵犯性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任(无论因合同、侵权或其他方式引起,源自、出于或与软件或软件的使用或其他交易有关)负责。

完整文档 >