Ho un UIViewController
con un UIDatePicker
Proprietà datePicker. L'ho configurato in Interface Builder per avere un UIDatePicker
in modalità "Timer" e per chiamarlo datePickerValueDidChange:
metodo del controller di visualizzazione quando si verifica l'evento "Valore modificato". Il codice nel controller della vista è simile al seguente:
- (void) viewWillAppear:(BOOL)animated {
NSLog(@"datePicker: %@", datePicker);
NSLog(@"datePicker.datePickerMode: %d", datePicker.datePickerMode);
}
E quando la vista viene caricata, la vedi nel registro
datePicker: <UIDatePicker: 0x3b03660; frame = (0 61; 320 216); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x3b033a0>>
datePicker.datePickerMode: 3
Ciò significa che il selezionatore di date è inizializzato e la modalità è UIDatePickerModeCountDownTimer
. Quando cambio il valore spostando una delle rotelle di scorrimento, chiama questo metodo:
- (IBAction) datePickerValueDidChange:(id)sender {
NSLog(@"datePicker.countDownDuration: %@", datePicker.countDownDuration);
}
E l'output nel registro è:
datePicker.countDownDuration: (null)
Perché è nulla? Non è questo il modo per ottenere il valore per le ore / minuti che l'utente ha selezionato? Altrimenti, come puoi ottenere quei valori?
risposte:
2 per risposta № 1countDownDuration è un NSTimeInterval (in realtà un doppio). Per stamparlo, dovrai usare
NSLog(@"datePicker.countDownDuration: %f", datePicker.countDownDuration);