如何为 UIAlertViewController 定义宏?

Posted

技术标签:

【中文标题】如何为 UIAlertViewController 定义宏?【英文标题】:How to define macro for UIAlertViewController? 【发布时间】:2016-03-30 09:14:48 【问题描述】:

在旧项目中根据需要添加了 400 个Alertview 对象,所以在这里我想在 ios 8.0 中引入的objective-c 中为UIAlertViewController 定义macro

请帮我在常量文件中定义它。

【问题讨论】:

【参考方案1】:

仅用于警报视图

#define SHOW_ALERT(title,msg,del,cancel,other) \
do  \
UIAlertView *_alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:del cancelButtonTitle:cancel otherButtonTitles:other,nil]; \
[_alert show]; \
 while(0);

仅适用于 AlertViewController

#define SHOW_ALERT2(title,msg,ButtonTitle)\
do  \
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert];\
    UIAlertAction *actionOk = [UIAlertAction actionWithTitle:ButtonTitle\
                                                       style:UIAlertActionStyleDefault\
                                                     handler:nil]; \
    [alertController addAction:actionOk];\
    [self presentViewController:alertController animated:YES completion:nil];\
while(0);

对于 AlertView 和 AlertViewController

#define SHOW_ALERT3(title,msg,delegate,ButtonTitle) \
    do  \
        if ([UIAlertController class]) \
            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert];\
            UIAlertAction *actionOk = [UIAlertAction actionWithTitle:ButtonTitle\
            style:UIAlertActionStyleDefault\
            handler:nil]; \
            [alertController addAction:actionOk];\
            [self presentViewController:alertController animated:YES completion:nil];\
        \
        else \
            UIAlertView *_alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:delegate cancelButtonTitle:ButtonTitle otherButtonTitles:nil]; \
            [_alert show]; \
        \
    while(0);

【讨论】:

我想作为 UIViewController 上的类别方法会感觉更自然。

以上是关于如何为 UIAlertViewController 定义宏?的主要内容,如果未能解决你的问题,请参考以下文章

通过点击外部关闭 UIAlertViewController

UIAlertViewController的使用

swift 显示UIAlertViewController

UIAlertViewController 中具有圆角矩形边框样式的文本字段。 (迅速)

UIAlertView, UIAlertViewController

iOS9如何调用NSObject类中的UIAlertviewController?