Skip to content

Commit

Permalink
Added additional constructors for min/maxdate
Browse files Browse the repository at this point in the history
  • Loading branch information
emmanuelay committed Nov 17, 2014
1 parent 12aba9a commit 0b4f561
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 16 deletions.
23 changes: 19 additions & 4 deletions Pickers/ActionSheetDatePicker.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,19 @@ typedef void(^ActionDateCancelBlock)(ActionSheetDatePicker *picker);
@property (nonatomic, copy) ActionDateDoneBlock onActionSheetDone;
@property (nonatomic, copy) ActionDateCancelBlock onActionSheetCancel;

+ (id)showPickerWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate minimumDate:(NSDate *)minimumDate maximumDate:(NSDate *)maximumDate target:(id)target action:(SEL)action origin:(id)origin;
+ (id)showPickerWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate target:(id)target action:(SEL)action origin:(id)origin;

+ (id)showPickerWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate
minimumDate:(NSDate *)minimumDate maximumDate:(NSDate *)maximumDate
target:(id)target action:(SEL)action origin:(id)origin;

+ (id)showPickerWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode
selectedDate:(NSDate *)selectedDate
doneBlock:(ActionDateDoneBlock)doneBlock
cancelBlock:(ActionDateCancelBlock)cancelBlock
origin:(UIView*)view;

+ (id)showPickerWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode
Expand All @@ -59,20 +71,23 @@ typedef void(^ActionDateCancelBlock)(ActionSheetDatePicker *picker);
cancelBlock:(ActionDateCancelBlock)cancelBlock
origin:(UIView*)view;


- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate target:(id)target action:(SEL)action origin:(id)origin;

- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate minimumDate:(NSDate *)minimumDate maximumDate:(NSDate *)maximumDate target:(id)target action:(SEL)action origin:(id)origin;

- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate target:(id)target action:(SEL)action origin:(id)origin cancelAction:(SEL)cancelAction;

- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate minimumDate:(NSDate *)minimumDate maximumDate:(NSDate *)maximumDate target:(id)target action:(SEL)action origin:(id)origin cancelAction:(SEL)cancelAction;


- (instancetype)initWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode
selectedDate:(NSDate *)selectedDate
minimumDate:(NSDate *)minimumDate
maximumDate:(NSDate *)maximumDate
doneBlock:(ActionDateDoneBlock)doneBlock
cancelBlock:(ActionDateCancelBlock)cancelBlock
origin:(UIView*)view;

- (void)eventForDatePicker:(id)sender;

@end
@end
67 changes: 55 additions & 12 deletions Pickers/ActionSheetDatePicker.m
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,38 @@ @interface ActionSheetDatePicker()

@implementation ActionSheetDatePicker

+ (id)showPickerWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate
target:(id)target action:(SEL)action origin:(id)origin {
ActionSheetDatePicker *picker = [[ActionSheetDatePicker alloc] initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate target:target action:action origin:origin];
[picker showActionSheetPicker];
return picker;
}

+ (id)showPickerWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate
minimumDate:(NSDate *)minimumDate maximumDate:(NSDate *)maximumDate
target:(id)target action:(SEL)action origin:(id)origin {
ActionSheetDatePicker *picker = [[ActionSheetDatePicker alloc] initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate minimumDate:minimumDate maximumDate:maximumDate target:target action:action origin:origin];
ActionSheetDatePicker *picker = [[ActionSheetDatePicker alloc] initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate target:target action:action origin:origin];
[picker setMinimumDate:minimumDate];
[picker setMaximumDate:maximumDate];
[picker showActionSheetPicker];
return picker;
}

+ (id)showPickerWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode
selectedDate:(NSDate *)selectedDate
doneBlock:(ActionDateDoneBlock)doneBlock
cancelBlock:(ActionDateCancelBlock)cancelBlock
origin:(UIView*)view
{
ActionSheetDatePicker* picker = [[ActionSheetDatePicker alloc] initWithTitle:title
datePickerMode:datePickerMode
selectedDate:selectedDate
doneBlock:doneBlock
cancelBlock:cancelBlock
origin:view];
[picker showActionSheetPicker];
return picker;
}
Expand All @@ -57,19 +84,37 @@ + (id)showPickerWithTitle:(NSString *)title
ActionSheetDatePicker* picker = [[ActionSheetDatePicker alloc] initWithTitle:title
datePickerMode:datePickerMode
selectedDate:selectedDate
minimumDate:minimumDate
maximumDate:maximumDate
doneBlock:doneBlock
cancelBlock:cancelBlock
origin:view];
[picker setMinimumDate:minimumDate];
[picker setMaximumDate:maximumDate];
[picker showActionSheetPicker];
return picker;
}

- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate target:(id)target action:(SEL)action origin:(id)origin
{
self = [self initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate target:target action:action origin:origin cancelAction:nil];
return self;
}

- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate minimumDate:(NSDate *)minimumDate maximumDate:(NSDate *)maximumDate target:(id)target action:(SEL)action origin:(id)origin
{
self = [self initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate minimumDate:minimumDate maximumDate:maximumDate target:target action:action origin:origin cancelAction:nil];
self = [self initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate target:target action:action origin:origin cancelAction:nil];
self.minimumDate = minimumDate;
self.maximumDate = maximumDate;
return self;
}

- (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePickerMode selectedDate:(NSDate *)selectedDate target:(id)target action:(SEL)action origin:(id)origin cancelAction:(SEL)cancelAction
{
self = [super initWithTarget:target successAction:action cancelAction:cancelAction origin:origin];
if (self) {
self.title = title;
self.datePickerMode = datePickerMode;
self.selectedDate = selectedDate;
}
return self;
}

Expand All @@ -89,13 +134,11 @@ - (id)initWithTitle:(NSString *)title datePickerMode:(UIDatePickerMode)datePicke
- (instancetype)initWithTitle:(NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode
selectedDate:(NSDate *)selectedDate
minimumDate:(NSDate *)minimumDate
maximumDate:(NSDate *)maximumDate
doneBlock:(ActionDateDoneBlock)doneBlock
cancelBlock:(ActionDateCancelBlock)cancelBlock
origin:(UIView*)origin
{
self = [self initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate minimumDate:minimumDate maximumDate:maximumDate target:nil action:nil origin:origin];
self = [self initWithTitle:title datePickerMode:datePickerMode selectedDate:selectedDate target:nil action:nil origin:origin];
if (self) {
self.onActionSheetDone = doneBlock;
self.onActionSheetCancel = cancelBlock;
Expand Down Expand Up @@ -138,7 +181,7 @@ - (void)notifyTarget:(id)target didSucceedWithAction:(SEL)action origin:(id)orig
self.onActionSheetDone(self, @(((UIDatePicker *)self.pickerView).countDownDuration), origin);
else
self.onActionSheetDone(self, self.selectedDate, origin);

return;
}
else if ([target respondsToSelector:action])
Expand All @@ -151,8 +194,8 @@ - (void)notifyTarget:(id)target didSucceedWithAction:(SEL)action origin:(id)orig
[target performSelector:action withObject:self.selectedDate withObject:origin];
}
#pragma clang diagnostic pop
else
NSAssert(NO, @"Invalid target/action ( %s / %s ) combination used for ActionSheetPicker", object_getClassName(target), sel_getName(action));
else
NSAssert(NO, @"Invalid target/action ( %s / %s ) combination used for ActionSheetPicker", object_getClassName(target), sel_getName(action));
}

- (void)notifyTarget:(id)target didCancelWithAction:(SEL)cancelAction origin:(id)origin
Expand Down Expand Up @@ -206,11 +249,11 @@ - (void)customButtonPressed:(id)sender {
case Selector:
[super customButtonPressed:sender];
break;

default:
NSAssert(false, @"Unknown action type");
break;
}
}

@end
@end

0 comments on commit 0b4f561

Please sign in to comment.