2013-01-04 15 views
6

È necessario impostare la data iniziale su un valore diverso da "Oggi", in modo che l'utente sia obbligato a effettuare una selezione. Ho scoperto che se l'utente NON effettua una selezione, la data/ora è impostata su "nil"; Posso inviare un UIAlertView, ma questo è dopo il fatto.Come impostare UIDatePicker su una data iniziale diversa da "Oggi"

Ho guardato SO e Google, ma non ho trovato nulla. Come posso fare questo?

AGGIORNAMENTO: in realtà, non l'ho indicato, ma l'anno non viene mostrato, solo mese, giorno e am/pm. Senza l'anno, potrebbero non vedere una data futura. T

+4

Il tuo primo aspetto dovrebbe essere il "Riferimento di classe UIDatePicker". –

+0

Perché stai facendo saltare i tuoi utenti attraverso i cerchi come questo? Se l'utente non effettua una selezione e viene restituito 'nil', perché non verifichi questa condizione e fornisci tu stesso il valore" oggi "?O ancora meglio, scopri perché il picker sta restituendo zero - non sembra affatto un valore di ritorno predefinito corretto. – trudyscousin

+0

trudyscousin: "nil" viene restituito; Sto lavorando con utenti che non sono esperti di computer e sto cercando di costringerli a fare una scelta. Se l'ho impostato su "oggi", potrebbero non vederlo pensare di non doverlo impostare ... – SpokaneDude

risposta

7

In questo modo

[datePicker setDate:yourDate]; 

in viewDidLoad metodo.

8

Una domanda, come fai a sapere che l'utente non selezionerà la data specifica in cui l'hai impostata?

userei

[datePicker setDate:[NSDate date]]; 

per visualizzare la data odierna sulla selezione data.

+0

vedere la mia risposta a "trudyscousin" sopra ... – SpokaneDude

+2

In realtà, '[data NSDate]' ottiene il timestamp corrente sotto forma di un doppio che rappresenta il numero di secondi da I-forget-the-exact-date nel 2001 a GMT di mezzanotte. La roba YYYY-MM-DD a cui stai pensando è solo il formato predefinito usato dal metodo di classe '' -description' (usato quando si stampa un oggetto sulla console.) –

+0

Jonathan: Stavo pensando ... se avessi impostato la data predefinita di ieri, che funziona ... ora, per addestrare gli utenti a cambiare la data ... Per favore cambia il tuo commento in una risposta ...: D – SpokaneDude

1

È possibile impostare una data in futuro, quindi impostare anche una data minima in modo che l'utente possa scegliere una data solo in futuro (se è quello che si sta cercando).

programmazione

Se si sta facendo tutto questo a livello di codice è necessario utilizzare queste proprietà:

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

Con Interface Builder

Se si sta facendo via XI ter (o storyboard), nell'ispettore attributi è possibile impostare tutti gli attributi: la data, ma anche la data minima e massima, quindi se si desidera che gli Stati er non può impostare oggi come oggi, ma solo una data in futuro, utilizzare la data minima:

enter image description here

PS: Modificare il formato se si desidera visualizzare solo alcune parti del data.

1
NSDate *todayDate = [NSDate date]; 

NSDate *aGo = [todayDate dateByAddingTimeInterval:-6*24*60*60]; 
  1. Sarà impostare la data minima di selezione data

    [_datePickerView setMinimumDate:aGo];

  2. Quando apriamo datepickerview la posizione data di default è impostato qui

    [_datePickerView setDate:[NSDate date]];

Problemi correlati