2012-06-13 14 views
6

So come impostare la data massima e minima in un UIDatePicker a una certa data, mettere mi stavo chiedendo se sarebbe possibile farlo in modo che la data minima sia sempre la data "oggi". Non ha senso, nella mia app, che gli utenti inseriscano una data nel passato, solo per aggiungerne una che è oggi o in futuro.iOS 5 - Impostare la data minima di UIDatePicker su "oggi"

risposta

24

impostare la data minima per ora e la data visualizzata ad ora + 2 secondi:

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

fare questo quando si sia init pennino o impostare i dati per il controller della vista sul riutilizzo. Si può fare anche questo in viewWillAppear.

Punti extra: Si può aggiungere un metodo IBAction che incoraggia sottilmente l'utente non di scegliere una data di mal consigliato:

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

impressionanti, grandi opere. Grazie mille per la risposta. – mhbdr

+1

Quel metodo 'IBAction' era esattamente quello che mi mancava. Grazie mille. – Robert

+0

Il metodo IBAction non è più necessario con iOS10 sembra. Il selettore scorre all'ora corrente se selezioni qualcosa in passato. –

Problemi correlati