2012-06-13 54 views
6

Tôi biết cách đặt ngày tối đa và tối thiểu trong UIDatePicker thành một ngày nhất định, đặt tôi đã tự hỏi liệu nó có thể thực hiện được để ngày tối thiểu luôn luôn ngày "hôm nay". Nó chỉ không có ý nghĩa trong ứng dụng của tôi cho người dùng để nhập một ngày đó là trong quá khứ, chỉ cho họ để thêm một ngày hôm nay hoặc trong tương lai.iOS 5 - Đặt ngày tối thiểu UIDatePicker thành "hôm nay"

Trả lời

24

thiết lập ngày tối thiểu đến nay và ngày hiển thị đến nay + 2 giây:

myDatePicker.date = 
     [[ NSDate alloc ] initWithTimeIntervalSinceNow: (NSTimeInterval) 2 ]; 
myDatePicker.minimumDate = 
     [[ NSDate alloc ] initWithTimeIntervalSinceNow: (NSTimeInterval) 0 ]; 

Làm điều này khi bạn có init Nib hoặc thiết lập các dữ liệu cho bộ điều khiển xem trên tái sử dụng. Bạn cũng có thể thực hiện việc này trong chế độ xemWillAppear.

Thêm điểm: Bạn có thể thêm một phương pháp IBAction mà tinh tế khuyến khích người dùng không chọn một ngày ốm khuyên:

- (IBAction)datePickerChanged: (id)sender 
{ 
    if ([ datePicker.date timeIntervalSinceNow ] < 0) 
     datePicker.date = now; 
} 
+0

Awesome, hoạt động tuyệt vời. Cảm ơn rất nhiều vì câu trả lời. – mhbdr

+1

Phương pháp 'IBAction' đó chính xác là những gì tôi đã bỏ lỡ. Cảm ơn nhiều. – Robert

+0

Phương pháp IBAction không còn cần thiết với iOS10. Bộ chọn cuộn lại thời gian hiện tại nếu bạn chọn bất kỳ thứ gì trong quá khứ. –

Các vấn đề liên quan