iOSdateselect器:如何locking无效date?

我一直在努力争取最大/最小的date,说实话,我不知道我在这里错过了什么。 我搜查了很多,似乎没有人抱怨。 (我不是在说设置最大/最小date,因为这些只能使无效date显示为灰色)

以下是我迄今为止所做的:

[myDatePicker addTarget:self action:@selector(disableDate) forControlEvents:UIControlEventValueChanged]; 

然后,在disableDate上,我有这样的东西:

 if ([myDatePicker.date compare:[NSDate date]] == NSOrderedDescending) { MyDatePicker.date = [NSDate date]; } 

(或升序,这取决于我想禁用哪个date)

事情是:它工作正常,但只有一次。 换句话说,只要我打开视图,并尝试挑选,例如,2007年,它可以回滚到2013年。太好了。 但之后,如果我尝试滚动到任何无效的date(包括2007年),它将不会回滚了,直到我重新打开我的看法。 我觉得我在这里错过了一些简单的东西,但我不知道是什么。

提前感谢!

PS:只要提到,我已经把它放在了disableDate里面

  NSLog(@"Value changed"); 

只是为了确保每次我滚动dateselect器时调用方法,是的,它正在工作;

PS2:我试过一样,但使用

 - (IBAction)datePickerValueChanged:(id) sender 

相反,它有完全一样的行为。

所以为了“重置” UIDatePicker你可以使用reloadInputViews方法(因为UIDatePickerUIResponder子类

编辑:拼写

Interesting Posts