Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
Swift UIDatePicker的日期打印不正确_Swift_Uidatepicker - Fatal编程技术网

Swift UIDatePicker的日期打印不正确

Swift UIDatePicker的日期打印不正确,swift,uidatepicker,Swift,Uidatepicker,我有一个日期选择器&上面有一个按钮。单击此按钮,我将打印日期选择器日期 当我滚动日期选择器并打印日期时,它工作正常。下面是我的代码 print("date selected===\(myDatePicker.date)") 当我不滚动日期选择器并单击“完成”按钮时,问题就出现了 场景是我将datepicker maximumDate设置为2000年(currentYear-18)。下面是我使用的代码 var dayComp = DateComponents() currDate = Date(

我有一个日期选择器&上面有一个按钮。单击此按钮,我将打印日期选择器日期

当我滚动日期选择器并打印日期时,它工作正常。下面是我的代码

print("date selected===\(myDatePicker.date)")
当我不滚动日期选择器并单击“完成”按钮时,问题就出现了

场景是我将datepicker maximumDate设置为2000年(currentYear-18)。下面是我使用的代码

var dayComp = DateComponents()
currDate = Date()
dayComp.year = -18
currDate = calendar.date(byAdding: dayComp, to: currDate)!
mDateFrom.maximumDate = currDate
现在,由于日期选择器可以追溯到18年前,我看到日期选择器的日期为2000年7月25日,但当我单击“完成”按钮时,它只打印今天的日期

只有当我滚动datepicker时,它才会给出正确的日期


你知道为什么会发生这种情况吗?

我相信,一旦你根据自己的意愿创建了一个日期选择器,你就需要设置日期选择器显示的默认日期。因为此属性的
默认值
是创建
UIDatePicker
对象的日期,这就是为什么无论何时打印日期选择器的值而不旋转,它都会显示当前日期。但是,如果旋转日期选择器,则此属性设置正确,并且可以打印正确的日期

 //you can use date property to set or get  
 myDatePicker.date = yourFormattedDateHere

设置
date
属性通过将轮子旋转到新的日期和时间来设置
日期选择器的动画
,如果您不希望在设置日期时出现任何动画,请使用
setDate(uu:animated:)
方法,为动画参数传递false。

更改日期时会有一个回调(valueChanged)。因此,如果您只是在不更改日期的情况下解雇选取者,您通常不会得到它。