Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS日期选择器:如何锁定无效日期?_Ios_Locking_Uidatepicker_Minimum - Fatal编程技术网

iOS日期选择器:如何锁定无效日期?

iOS日期选择器:如何锁定无效日期?,ios,locking,uidatepicker,minimum,Ios,Locking,Uidatepicker,Minimum,最近我一直在为最长/最短日期而挣扎,老实说,我不知道我错过了什么。我搜索了很多,似乎没有人抱怨。(我不是说设置最大/最小日期,因为这些只能使无效日期显示为灰色) 以下是我迄今为止所做的工作: [myDatePicker addTarget:self action:@selector(disableDate) forControlEvents:UIControlEventValueChanged]; 然后,在disableDate,我有这样的事情: if ([myDatePicker.d

最近我一直在为最长/最短日期而挣扎,老实说,我不知道我错过了什么。我搜索了很多,似乎没有人抱怨。(我不是说设置最大/最小日期,因为这些只能使无效日期显示为灰色)

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

    [myDatePicker addTarget:self action:@selector(disableDate) forControlEvents:UIControlEventValueChanged];
然后,在disableDate,我有这样的事情:

if ([myDatePicker.date compare:[NSDate date]] == NSOrderedDescending) {
        MyDatePicker.date = [NSDate date];
    }
(或升序,取决于我要禁用的日期)

问题是:它工作得很好,但只有一次。换句话说:只要我打开视图并尝试选择,例如2007,它就会滚动回2013。伟大的但就在那之后,如果我试图滚动到任何无效的日期(包括2007年),它将不会再向后滚动,直到我重新打开我的视图。 我觉得我错过了一些简单的东西,但我不知道是什么

提前多谢

PS:我只是想提一下,我已经把这个放在了disableDate里面了

    NSLog(@"Value changed");
只是为了确保每次我滚动datepicker时它都在调用该方法,是的,它正在工作

PS2:我也试过同样的方法,但是使用了

- (IBAction)datePickerValueChanged:(id) sender
相反,它具有完全相同的行为。

因此,为了“重置”
UIDatePicker
您可以使用
reloadInputViews
方法(因为
UIDatePicker
UIResponder
的子类)


编辑:在设置日期后使用
[myDatePicker reloadInputViews]拼写Tyr;
事实上是这样!我以前犯过一个错误!非常感谢!!我添加了我的评论作为答案。如果你想,你可以将其标记为接受答案;)