我在 UIDatePicker 上遇到了非常奇怪的行为。我有一个在 .h 文件中声明为 IBOutlet UIDatePicker *datePicker; 的日期选择器的视图。具有非原子属性和保留。datePicker 在 IB 文件中正确链接。
在代码中,我使用以下代码设置调用 UIControlEventValueChanged 的最小、最大、初始日期和操作
If (!currentDate) {
initialDate = [NSDate date];
} else {
initialDate = currentdate;
}
[datePicker setMinimumDate:[NSDate date]];
[datePicker setMaximumDate:[[NSDate date] addTimeInterval:5 * 365.25 * 24 * 60 * 60]]; // to get upto 5 years
[datePicker setDate:initialDate animated:YES];
[datePicker addTarget:self action:@selector(getDatePickerValue:) forControlEvents:UIControlEventValueChanged];
在 getDatePickerValue 中,我使用 datePicker.date 获取新日期。
当视图关闭时(使用完成按钮),我使用 datePicker.date 获取日期的当前值。
现在,如果在没有“currentDate”的情况下调用视图,则选择器返回“今天日期”。这就是我的 pickerView 被调用的“第一次”。随后对视图的每次调用,没有“当前日期”,都会给我一个不同的和更晚的日期。所以,
我第一次得到今天的日期说 9 Jun 2010
第二次 datePicker.date 返回 10 Jun 2010
第三次 11 Jun 2010 等等。虽然它并不总是增量的,但大多数情况下是增量的。
我已经放置了 NSLogs,并验证了初始日期设置是否正确。
问题仅出现在设备上(在 OS 3.0 上),问题未在模拟器上复制。
我找不到我做错了什么。我希望其他人遇到过类似的问题并可以帮助我解决这个问题。