统一iOS里的警示框

在iOS8之前,我们用UIAlertView和UIActionSheet来展示模态的警示视图;而在iOS之后可以用UIAlertController,以统一的API来展示这两种视图。
UIAlertView和UIActionSheet通过代理实现按钮点击回调,而UIAlertController通过定义UIAlertAction向警示框添加按钮并同时指定回调。

对于这种分裂的局面,是时候想想统一大业了:

1、可以扩展UIAlertView、UIActionSheet和UIAlertController,为它们的按钮回调加上block支持。
2、可做简单封装,自动判断设备的版本号,从而自动选择用UIAlertView、UIActionSheet这些古老的API还是UIAlertController。

如果结合以上两点,那么我们就可以简单地调用了,就像下面:

showAlertViewFor(self,
                         title: "Title",
                         message: "Message",
                         destructiveButtonTitle: "destructive",
                         cancelButtonTitle: "cancel",
                         otherButtonTitles: ["boy", "girl"]) { index in
                            print(index)
        }

一统河山的业绩已经完成了!最近抽时间写了AlertHelper。
可以戳这里看Swift版本
这里看Objective-C版本

你可能感兴趣的:(统一iOS里的警示框)