2009-06-09 3 views
3

У меня есть приложение, в котором я запрашиваю день рождения пользователей с помощью UIDatePicker, а затем сохраняю его в стандартных стандартах по умолчанию. Когда приложение снова открывается, я снова получаю дату, а затем хочу установить UIDatePicker на эту дату, но он сбой и не принимает дату. Он хранится в формате «8 июня 2009 года».UIDatePicker и NSDate

Как это сделать? Это способ, которым я пытаюсь сейчас:

- (void)viewWillAppear:(BOOL)animated { 
    birthDate = [Preferences getBirthDate]; 
    if (birthDate == nil) { 
     [datePicker setDate:[NSDate date] animated:NO]; 
    }  
} 

Мои методы прив пользователей выглядеть в своем классе:

+ (NSDate *)getBirthDate { 
    // Geting via user defaults.... 
    if ([[NSUserDefaults standardUserDefaults] objectForKey:@"DOB"]) 
     return [[NSUserDefaults standardUserDefaults] objectForKey:@"DOB"]; 
    else { 
     return nil; 
    } 
} 

+ (BOOL)setBirthDate:(NSDate *)bDate { 
    //Setting via user defaults 
    [[NSUserDefaults standardUserDefaults] setObject:bDate forKey:@"DOB"]; 
    return [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

Спасибо заранее.

ответ

1

Из вашего кода вы никогда не устанавливаете дату datePicker для даты рождения. Попробуйте это:

- (void)viewWillAppear:(BOOL)animated { 
NSDate *birthDate = [Preferences getBirthDate]; 
if (birthDate == nil) { 
    birthDate = [NSDate date]; 
} 

datePicker.date = birthDate; 

}

+0

Спасибо! Я пытался использовать [datePicker setDate: birthDate], чтобы установить дату. Что делает этот метод, если он не устанавливает дату, что вы хотите? – Xcoder

+0

[datePicker setDate: birthDate] - это то же самое, что и datePicker.date = birthDate. Основное различие заключается в том, что если birthDate не равен нулю в вашем коде, дата datePicker не устанавливается. –

+0

Да, я знаю. Я прокомментировал это, потому что [datePicker setDate: birthDate] рушился. Однако, по какой-то причине datePicker.date нет. Очень странно. – Xcoder

1

Здесь objDatePicker является Datepicker объект,

NSDateFormatter *formate = [[NSDateFormatter alloc] init]; 
    [formate setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
    NSTimeZone *zone=[NSTimeZone defaultTimeZone]; 
    [formate setTimeZone:zone]; 
    NSDate *date = [formate dateFromString:timeTextField.text]; 
    NSLog(@"Output :%@",date); 
    [objDatePicker setDate:date];