-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWDAlertView.m
More file actions
97 lines (73 loc) · 2.65 KB
/
WDAlertView.m
File metadata and controls
97 lines (73 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//
// WPAlertView.m
// Created by Jian Yin Shen on 17/09/12.
//
//
#import "WDAlertView.h"
@interface WDAlertView ()
@property (nonatomic,copy) WDAlertViewButtonClickBlock buttonClickBlock;
@end
@implementation WDAlertView
- (id)initWithTitle:(NSString *)title
message:(NSString *)message
dismissBlock:(WDAlertViewButtonClickBlock)block
cancelButtonTitle:(NSString *)cancelButtonTitle
firstOtherButtonTitle:(NSString*)firstOtherbuttonTitle
otherButtonVarList:(va_list)args
{
if (( self = [super initWithTitle:title message:message delegate:self cancelButtonTitle:cancelButtonTitle otherButtonTitles:firstOtherbuttonTitle, nil] ))
{
if ( firstOtherbuttonTitle )
{
NSString *otherButtonTitle = nil;
while (( otherButtonTitle = va_arg( args, NSString * )))
[self addButtonWithTitle:otherButtonTitle];
}
self.buttonClickBlock = block;
}
return self;
}
- (id)initWithTitle:(NSString *)title
message:(NSString *)message
dismissBlock:(WDAlertViewButtonClickBlock)block
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ... {
//create var list
va_list args;
va_start(args, otherButtonTitles);
self = [self initWithTitle:title
message:message
dismissBlock:block
cancelButtonTitle:cancelButtonTitle
firstOtherButtonTitle:otherButtonTitles
otherButtonVarList:args];
va_end(args);
if (self) {
//all fine
}
return self;
}
+ (void)showAlertViewWithTitle:(NSString *)title
message:(NSString *)message
dismissBlock:(WDAlertViewButtonClickBlock)block
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ...NS_REQUIRES_NIL_TERMINATION {
va_list args;
va_start(args, otherButtonTitles);
UIAlertView* alert = [[WDAlertView alloc] initWithTitle:title
message:message
dismissBlock:block
cancelButtonTitle:cancelButtonTitle
firstOtherButtonTitle:otherButtonTitles
otherButtonVarList:args];
va_end(args);
[alert show];
}
#pragma mark - UIAlertViewDelegate
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (self.buttonClickBlock) {
self.buttonClickBlock(self, buttonIndex);
}
self.buttonClickBlock = nil;
}
@end