2011-09-09 33 views
2

我不知道为什么这个非常基本的代码块设置空值。UIDatePicker setMinimumDate和setMaximumDate设置null

NSDate *currentTime = [NSDate date]; 
[datePicker setMinimumDate:currentTime]; 
[datePicker setMaximumDate:[currentTime dateByAddingTimeInterval:kSecondsInYear]]; 
NSLog(@"cur: %@, min: %@, max: %@",currentTime,datePicker.minimumDate,datePicker.maximumDate); 

输出:CUR:2011-09-09十六时18分18秒格林尼治标准时间(分钟):(空),最大:(空)

+2

你检查过datePicker不是零吗?记录日期选择器检查它的设置是否正确。 – Obliquely

回答

2

发现问题,我在initwithnib方法中设置了最小/最大日期。当我将其更改为viewDidLoad方法时,它工作正常。哎呦。

+0

关于maxDate有一个有趣的细节:超出范围的日期仍然可见,但以深灰色(禁用)显示,而不是隐藏。 –

5

鉴于以下工作正常,问题肯定是有日期选择器。

UIDatePicker* datePicker = [[UIDatePicker alloc] init]; 
NSLog(@"DatePicker: %@", datePicker); 
NSDate *currentTime = [NSDate date]; 
[datePicker setMinimumDate:currentTime]; 
[datePicker setMaximumDate:[currentTime dateByAddingTimeInterval:40000]]; 
NSLog(@"cur: %@, min: %@, max: %@",currentTime,datePicker.minimumDate,datePicker.maximumDate); 

如果添加NSLog(@"DatePicker: %@", datePicker);到您的代码段应该报告的东西有点像:DatePicker: <UIDatePicker: 0x4b36740; frame = (0 0; 320 216); layer = <CALayer: 0x4b33940>>。如果它返回(null)(我非常强烈地怀疑),那么它不是以编程方式创建的,或者它没有连接到Interface Builder中。

+0

感谢您的努力,但我最终回答了我自己的问题。 – pir800