无法在 uidatepicker 中设置最小日期

Can't set the minimum date in uidatepicker

我在 stack over flow 中经历了很多关于在 UIDatepicker 中设置最小日期的问题和答案,我已经尝试了大部分但我仍然无法设置UIDatepicker 中的最小日期。我的确切要求是,70 岁以上的人不应注册我的应用程序。这是我试过但没有给我确切结果的代码。

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];

NSDateComponents *comps = [[NSDateComponents alloc] init];
NSDateComponents *compsII = [[NSDateComponents alloc] init];
[comps setYear:-14];

NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[compsII setYear:1960];

NSDate *minDate = [[NSCalendar currentCalendar] dateFromComponents:compsII];

datePicker =[[UIDatePicker alloc]initWithFrame:CGRectMake(0, 400, self.view.frame.size.width, 200)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden=NO;
datePicker.maximumDate = maxDate;
datePicker.minimumDate = minDate;

我认为这是你的问题

  1. 你的最小和最大日期设置错误。
  2. 您已将年份设置为 -14。

更新:

试试这个代码:

NSDate *todaysDate = [NSDate date];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *minDateComponents = [[NSDateComponents alloc] init];
[minDateComponents setYear:-70];
NSDate *minDate = [gregorian dateByAddingComponents:minDateComponents toDate:todaysDate  options:0];

NSDateComponents *maxDateComponents = [[NSDateComponents alloc] init];
[maxDateComponents setYear:-14];
NSDate *maxDate = [gregorian dateByAddingComponents:maxDateComponents toDate:todaysDate  options:0];
[formatter setDateFormat:@"MMM dd,yyyy"];

NSDate *date = [formatter dateFromString:lblDate.text];

datePicker.minimumDate=date;