如何将UIDatePicker设置为“今天”以外的初始日期

时间:2013-01-04 20:27:40

标签: objective-c ios6 uidatepicker

我需要将初始日期设置为"今天"以外的其他日期。所以用户被迫做出选择。我发现如果用户没有做出选择,则日期/时间设置为" nil&#34 ;;我可以发送一个UIAlertView,但事实就是这样。

我看过SO和Google,但一无所获。我怎么能这样做?

更新:实际上,我没有说明,但是没有显示年份,只有月份,日期和上午/下午。没有这一年,他们可能看不到未来的约会。 Ť

4 个答案:

答案 0 :(得分:9)

有一个问题,您如何知道用户不会选择您设置的特定日期?

我会用

[datePicker setDate:[NSDate date]];

在日期选择器上显示今天的日期。

答案 1 :(得分:7)

通过这样做

[datePicker setDate:yourDate];

viewDidLoad方法中。

答案 2 :(得分:1)

您可以在将来设置日期,然后再设置最短日期,以便用户只能选择将来的日期(如果这是您正在寻找的日期)。

以编程方式

如果您以编程方式执行所有操作,则应使用以下属性:

@property(nonatomic, retain) NSDate *maximumDate;
@property(nonatomic, retain) NSDate *minimumDate;
@property(nonatomic, retain) NSDate *date;

使用Interface Builder

如果您是通过xib(或storyboard)文件执行此操作,则可以在属性检查器中设置所有属性:日期,还可以设置最小和最大日期,因此如果您希望用户今天无法设置作为日期,但只是将来的日期,使用最短日期:

enter image description here

PS:如果您只想显示部分日期,请更改格式。

答案 3 :(得分:1)

NSDate *todayDate = [NSDate date];

NSDate *aGo = [todayDate dateByAddingTimeInterval:-6*24*60*60];
  1. 它将设置日期选择器的最短日期

    [_datePickerView setMinimumDate:aGo];

  2. 当我们打开datepickerview时,默认日期位置设置在这里

    [_datePickerView setDate:[NSDate date]];