2011-09-09 28 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