2012-06-13 15 views
6

Wiem, jak ustawić maksymalną i minimalną datę w UIDatePicker do określonej daty, postawiłem Zastanawiam się, czy byłoby to możliwe, aby minimalna data była zawsze "dzisiaj". W mojej aplikacji nie ma sensu wprowadzanie przez użytkowników daty, która miała miejsce w przeszłości, tylko po to, aby dodać taką, która jest dzisiaj lub w przyszłości.iOS 5 - Ustawianie minimalnej daty UIDatePicker na "dziś"

Odpowiedz

24

ustawić minimalną datę i teraz wyświetlana data teraz + 2 sek:

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

Zrób to, gdy obaj init stalówka lub ustawić dane do kontrolera widoku w sprawie ponownego wykorzystywania. Możesz to również zrobić w viewWillAppear.

Dodatkowe punkty: Możesz dodać metodę IBAction że subtelnie zachęca użytkownika, aby nie wybrać źle doradzał Data:

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

niesamowite, działa świetnie. Dziękuję bardzo za odpowiedź. – mhbdr

+1

Ta metoda "IBAction" była dokładnie tym, czego mi brakowało. Dziękuję Ci bardzo. – Robert

+0

Metoda IBAction nie jest już potrzebna w przypadku iOS10. Próbnik przewija się z powrotem do bieżącego czasu, jeśli wybierzesz coś w przeszłości. –

Powiązane problemy