2013-03-20 17 views
5

Seltsames Verhalten in iOS 6.1 gesetzt Ich habe das Mindestdatum in der aktuellen Datum für meinen Date Picker wie dieseDatumsauswahl scrollt vergangenes Datum, obwohl Mindest Datum aktuelles Datum

NSDate *currentTime = [NSDate date]; 
[picker setMinimumDate:currentTime]; 
gesetzt

enter image description here

Aber wenn ich die App laufen lasse, kann ich zum letzten Datum blättern, obwohl es nicht ausgewählt ist, springt die Auswahl nicht zum aktuellen Datum zurück. Es passiert nur mit iOS 6.1 Version und im Rest Picker verhält sich normal.

+0

Überprüfen Sie meine bearbeitete Antwort .. – moosa0709

Antwort

8

ich, wie Sie das gleiche Problem bekam und fixiert es mit nur das Datum auf den maximalen Datumseinstellung manuell (in diesem Fall setze ich den Grenzwert auf das aktuelle Datum):

Diese Funktion wird ausgelöst, wenn der Datumswert von der Datumsauswahl Änderung. Sie können hier einen maximalen oder minimalen Wert festlegen.

+0

Ist das eine Frage oder eine Antwort? Wenn Sie eine Frage haben, stellen Sie bitte eine neue Frage http://stackoverflow.com/questions/ask – nhahtdh

+0

Beantworten Sie eine Bonusfrage;) –

+0

Bitte entfernen Sie Ihre "Bonus" -Frage (Sie werden keine Antwort bekommen, und es überfüllt die tatsächliche Antwort) - wenn Sie wirklich möchten, dass Ihre Frage beantwortet wird, stellen Sie bitte eine neue Frage. – nhahtdh

2

Sie haben min einstellen und max Datum wie:

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDate *currentDate = [NSDate date]; 
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 

NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0]; 
[datePicker setMinimumDate:minDate]; 
+0

Immer noch dasselbe Problem Mann. Kann zu alten Daten scrollen. –

2

Dieser Code Versuchen

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDate *currentDate = [NSDate date]; 
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 
[comps setYear:30]; 
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0]; 
[comps setYear:-30]; 
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0]; 

[datePicker setMaximumDate:maxDate]; 
[datePicker setMinimumDate:minDate]; 
+0

Wirklich erhalten Sie das aktuelle Datum wie Ihre Antwort Way ..? –

+0

@Prem Ich habe Ihre Lösung versucht und es funktioniert nicht. Ist das der Fehler in iOS 6.1? –

+1

http://code4app.net/ios/Local-Notifier/4fb5e7c06803fa3a7f000000 Ich habe die Probe von diesem Link ..Teach mich, wenn etwas falsch..Thiks – moosa0709

1

Die Eigenschaft ist ein NSDate-Objekt oder nil (Standard), dh kein maximales Datum. Mit dieser Eigenschaft können Sie zusammen mit der Eigenschaft minimumDate einen gültigen Datumsbereich angeben. Wenn der minimale Datumswert größer als der maximale Datumswert ist, werden beide Eigenschaften ignoriert. Die Mindest- und Höchstdaten werden auch im Countdown-Timer-Modus (UIDatePickerModeCountDownTimer) ignoriert.

Versuchen Sie, beide Mindest- und Höchstdaten zu setzen. Es funktioniert für mich.