| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- //
- // RADatePickerViewController.m
- // Apex And Drivers
- //
- // Created by Jack on 2018/8/28.
- // Copyright © 2018年 USAI. All rights reserved.
- //
- #import "RADatePickerViewController.h"
- #import "RAPresentationController.h"
- @interface RADatePickerViewController () <UIViewControllerTransitioningDelegate>
- @property (strong, nonatomic) IBOutlet UILabel *titleLabel;
- @property (strong, nonatomic) IBOutlet UIDatePicker *datePicker;
- @property (nonatomic,copy) void(^blk)(NSDate *);
- @property (nonatomic,assign) UIDatePickerMode datePickerMode;
- @end
- @implementation RADatePickerViewController
- + (instancetype)viewControllerFromStoryboard {
- RADatePickerViewController *datePickerVC = [[UIStoryboard storyboardWithName:@"date" bundle:nil] instantiateViewControllerWithIdentifier:[self storyboardID]];
-
-
- return datePickerVC;
- }
- + (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title dateMode:(UIDatePickerMode)mode withSetBlk:(void(^)(NSDate *date))blk {
-
- if (!viewController) {
- return;
- }
-
- RADatePickerViewController *datePickerVC = [self viewControllerFromStoryboard];
-
- datePickerVC.title = title;
- datePickerVC.blk = blk;
- datePickerVC.datePickerMode = mode;
-
- datePickerVC.transitioningDelegate = datePickerVC;
- datePickerVC.modalPresentationStyle = UIModalPresentationCustom;
-
- CGFloat width = [UIScreen mainScreen].bounds.size.width - 40;
- datePickerVC.preferredContentSize = CGSizeMake(width, 325);
-
- [viewController presentViewController:datePickerVC animated:YES completion:nil];
- }
- + (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title withSetBlk:(void(^)(NSDate *date))blk {
-
- [self presentDatePicker:viewController title:title dateMode:UIDatePickerModeDate withSetBlk:blk];
- }
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
-
- self.view.layer.cornerRadius = 10.0f;
- self.view.layer.masksToBounds = YES;
-
- self.datePicker.datePickerMode = self.datePickerMode;
- self.titleLabel.text = self.title;
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- #pragma mark - UIViewControllerTransitioningDelegate
- - (UIPresentationController *)presentationControllerForPresentedViewController:(UIViewController *)presented
- presentingViewController:(UIViewController *)presenting
- sourceViewController:(UIViewController *)source {
-
- return [[RAPresentationController alloc] initWithPresentedViewController:presented presentingViewController:presenting];
-
- }
- #pragma mark - Action
- - (IBAction)cancelBtnClick:(id)sender {
-
- [self dismissViewControllerAnimated:YES completion:nil];
-
- }
- - (IBAction)setBtnClick:(id)sender {
-
- __weak typeof(self) weakSelf = self;
- NSDate *date = self.datePicker.date;
- [self dismissViewControllerAnimated:YES completion:^{
-
- if (weakSelf) {
- __strong typeof(weakSelf) strongSelf = weakSelf;
- if (strongSelf.blk) {
- strongSelf.blk(date);
- }
- }
-
- }];
- }
- @end
|