Skip to content

Commit c1d4457

Browse files
committed
fluent: show block added
1 parent d0f76c7 commit c1d4457

2 files changed

Lines changed: 20 additions & 4 deletions

File tree

SCLAlertView/SCLAlertView.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ typedef NS_ENUM(NSInteger, SCLAlertViewBackground)
448448

449449
@interface SCLAlertViewShowBuilder : NSObject
450450

451-
@property(strong, nonatomic, readonly) UIViewController *parameterViewController;
451+
@property(weak, nonatomic, readonly) UIViewController *parameterViewController;
452452
@property(copy, nonatomic, readonly) UIImage *parameterImage;
453453
@property(copy, nonatomic, readonly) UIColor *parameterColor;
454454
@property(copy, nonatomic, readonly) NSString *parameterTitle;
@@ -471,6 +471,7 @@ typedef NS_ENUM(NSInteger, SCLAlertViewBackground)
471471

472472
- (void)showAlertView:(SCLAlertView *)alertView;
473473
- (void)showAlertView:(SCLAlertView *)alertView onViewController:(UIViewController *)controller;
474+
@property(copy, nonatomic, readonly) void (^show)(SCLAlertView *view, UIViewController *controller);
474475
@end
475476

476477
@interface SCLALertViewTextFieldBuilder : NSObject

SCLAlertView/SCLAlertView.m

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2085,7 +2085,7 @@ - (instancetype)initWithNewWindowWidth:(CGFloat)width {
20852085
@end
20862086

20872087
@interface SCLAlertViewShowBuilder()
2088-
@property(strong, nonatomic) UIViewController *parameterViewController;
2088+
@property(weak, nonatomic) UIViewController *parameterViewController;
20892089
@property(copy, nonatomic) UIImage *parameterImage;
20902090
@property(copy, nonatomic) UIColor *parameterColor;
20912091
@property(copy, nonatomic) NSString *parameterTitle;
@@ -2105,6 +2105,9 @@ @interface SCLAlertViewShowBuilder()
21052105
@property(copy, nonatomic) SCLAlertViewShowBuilder *(^style)(SCLAlertViewStyle style);
21062106
@property(copy, nonatomic) SCLAlertViewShowBuilder *(^closeButtonTitle)(NSString *closeButtonTitle);
21072107
@property(copy, nonatomic) SCLAlertViewShowBuilder *(^duration)(NSTimeInterval duration);
2108+
2109+
#pragma mark - Show
2110+
@property(copy, nonatomic) void (^show)(SCLAlertView *view, UIViewController *controller);
21082111
@end
21092112

21102113
@implementation SCLAlertViewShowBuilder
@@ -2208,12 +2211,24 @@ - (void)showAlertView:(SCLAlertView *)alertView {
22082211
}
22092212

22102213
- (void)showAlertView:(SCLAlertView *)alertView onViewController:(UIViewController *)controller {
2214+
UIViewController *targetController = controller ? controller : self.parameterViewController;
2215+
22112216
if (self.parameterImage || self.parameterColor) {
2212-
[alertView showTitle:controller image:self.parameterImage color:self.parameterColor title:self.parameterTitle subTitle:self.parameterSubTitle duration:self.parameterDuration completeText:self.parameterCloseButtonTitle style:self.parameterStyle];
2217+
[alertView showTitle:targetController image:self.parameterImage color:self.parameterColor title:self.parameterTitle subTitle:self.parameterSubTitle duration:self.parameterDuration completeText:self.parameterCloseButtonTitle style:self.parameterStyle];
22132218
}
22142219
else {
2215-
[alertView showTitle:controller title:self.parameterTitle subTitle:self.parameterSubTitle style:self.parameterStyle closeButtonTitle:self.parameterCloseButtonTitle duration:self.parameterDuration];
2220+
[alertView showTitle:targetController title:self.parameterTitle subTitle:self.parameterSubTitle style:self.parameterStyle closeButtonTitle:self.parameterCloseButtonTitle duration:self.parameterDuration];
2221+
}
2222+
}
2223+
2224+
- (void (^)(SCLAlertView *view, UIViewController *controller))show {
2225+
if (!_show) {
2226+
__weak typeof(self) weakSelf = self;
2227+
_show = ^(SCLAlertView *view, UIViewController *controller) {
2228+
[weakSelf showAlertView:view onViewController:controller];
2229+
};
22162230
}
2231+
return _show;
22172232
}
22182233

22192234
@end

0 commit comments

Comments
 (0)