一行代码创建AlertView

来源:互联网 发布:mac spss许可证 编辑:程序博客网 时间:2024/05/18 02:36
////  UIAlertView+Additions.h//////  Created by Jueying on 15/1/15.//  Copyright (c) 2015年 Jueying. All rights reserved.// #import <UIKit/UIKit.h> typedef void(^UIAlertViewCallBackBlock)(NSInteger index); @interface UIAlertView (Additions) <UIAlertViewDelegate> @property (nonatomic, copy) UIAlertViewCallBackBlock alertViewCallBackBlock; /** *  cancel * *  @param title         <#title description#> *  @param message       <#message description#> *  @param cancelBtnName <#cancelBtnName description#> *  @param callBackBlock <#callBackBlock description#> */+ (void)alertWithTitle:(NSString *)title message:(NSString *)message cancelBtnName:(NSString *)cancelBtnName callBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock; /** *  cancel and other * *  @param title         <#title description#> *  @param message       <#message description#> *  @param cancelBtnName <#cancelBtnName description#> *  @param otherBtnName  <#otherBtnName description#> *  @param callBackBlock <#callBackBlock description#> */+ (void)alertWithTitle:(NSString *)title message:(NSString *)message cancelBtnName:(NSString *)cancelBtnName otherBtnName:(NSString *)otherBtnName callBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock; @end  ////  UIAlertView+Additions.m//////  Created by Jueying on 15/1/15.//  Copyright (c) 2015年 Jueying. All rights reserved.// #import "UIAlertView+Additions.h"#import <objc/runtime.h> static void* UIAlertViewKey = @"UIAlertViewKey"; @implementation UIAlertView (Additions) + (void)alertWithTitle:(NSString *)title message:(NSString *)message cancelBtnName:(NSString *)cancelBtnName callBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock {         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:cancelBtnName otherButtonTitles: nil];    alert.delegate = alert;    [alert show];    alert.alertViewCallBackBlock = alertViewCallBackBlock;} + (void)alertWithTitle:(NSString *)title message:(NSString *)message cancelBtnName:(NSString *)cancelBtnName otherBtnName:(NSString *)otherBtnName callBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock {         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:cancelBtnName otherButtonTitles: otherBtnName, nil];    alert.delegate = alert;    [alert show];    alert.alertViewCallBackBlock = alertViewCallBackBlock;} - (void)setAlertViewCallBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock {         objc_setAssociatedObject(self, &UIAlertViewKey;, alertViewCallBackBlock, OBJC_ASSOCIATION_COPY);} - (UIAlertViewCallBackBlock)alertViewCallBackBlock {         return objc_getAssociatedObject(self, &UIAlertViewKey;);} - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {         if (self.alertViewCallBackBlock) {        self.alertViewCallBackBlock(buttonIndex);    }}@end

1
2
3
[selfwillChangeValueForKey:@"callbackBlock"];
    objc_setAssociatedObject(self, &UIAlertViewKey;, alertViewCallBackBlock, OBJC_ASSOCIATION_COPY);
 [selfdidChangeValueForKey:@"callbackBlock"];
0 0
原创粉丝点击