直接上代码:
1,.h文件
#import <Foundation/Foundation.h>
typedef void (^CSRAlertCompletion)(NSInteger);
@interface CSRAlertView : UIAlertView <UIAlertViewDelegate> {
CSRAlertCompletion completionBlock;
}
- (void)showWithCompletionHandler:(CSRAlertCompletion)aBlock;
@end2,.m文件
#import "CSRAlertView.h"
@implementation CSRAlertView
- (void)showWithCompletionHandler:(CSRAlertCompletion)aBlock {
self.delegate = self;
completionBlock = [aBlock copy];
[self show];
}
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {
completionBlock(buttonIndex);
completionBlock = nil;
}
@end
3,如何使用:
CSRAlertView *alert = [[CSRAlertView alloc]
initWithTitle:@"title"
message:@"test 一把"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Yes", nil];
[alert showWithCompletionHandler:^(NSInteger buttonIndex) {
if (buttonIndex == 1) {
[[Devices sharedInstance] removeDevice:meshDevice];
}
}];

本文介绍了一种使用Objective-C实现自定义弹窗对话框的方法,通过创建一个继承自UIAlertViewDelegate的CSRAlertView类,实现了传入自定义的标题、消息、按钮标题等功能,并提供了完成回调来响应用户的操作。
9870

被折叠的 条评论
为什么被折叠?



