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
//
// ICRDatePickerViewController.m
// XFFruit
//
// Created by Xummer on 4/20/15.
// Copyright (c) 2015 Xummer. All rights reserved.
//
#import "IBTDatePickerViewController.h"
@interface IBTDatePickerViewController ()
@property (strong, nonatomic) UIDatePicker *datePicker;
@property (strong, nonatomic) NSDate *m_oSelectedDate;
@end
@implementation IBTDatePickerViewController
#pragma mark - Life Cycle
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self setupSubviews];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
CGRect frame = _datePicker.frame;
frame.origin.y = (CGRectGetHeight(self.view.bounds) - CGRectGetHeight(frame)) * (1 - 0.618);
_datePicker.frame = frame;
}
#pragma mark - Public Method
- (void)setSelectedDate:(NSDate *)selectedDate {
self.m_oSelectedDate = selectedDate;
}
#pragma mark - Private Method
- (void)setupSubviews {
[self addRightBarBtnItemWithName:[IBTCommon localizableString:@"Done"]
action:@selector(onDoneButtonAction:)];
self.datePicker = [[UIDatePicker alloc] init];
_datePicker.datePickerMode = UIDatePickerModeDate;
_datePicker.minimumDate = [NSDate date];
if (self.m_oSelectedDate) {
_datePicker.date = self.m_oSelectedDate;
}
[self.view addSubview:_datePicker];
}
#pragma mark - Actions
- (void)onDoneButtonAction:(__unused id)sender {
if ([_delegate respondsToSelector:@selector(datePickerVCtrl:didSelectedDate:)]) {
[_delegate datePickerVCtrl:self didSelectedDate:[_datePicker.date endOfTheDay]];
}
}
@end