2015-01-30 4 views
1

Итак, у меня есть метод, когда я меняю клавиатуру на UIDatePicker, и я хочу, чтобы пользователь выбирал дату для установки напоминания. Пока у меня есть своп клавиатуры для UIDatePicker, и когда я печатаю строку даты, она печатает только текущую дату независимо от того, что я установил.UIDatePicker возвращает текущую дату, даже когда я выбираю другую дату

self.datePicker = [[UIDatePicker alloc] init]; 

[self.noteTextView becomeFirstResponder]; 
[self.noteTextView setInputView:self.datePicker]; 

NSDate *date = self.datePicker.date; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
[dateFormatter setTimeZone:NSDateFormatterNoStyle]; 
[dateFormatter setLocale:[NSLocale currentLocale]]; 

self.myDate = [dateFormatter stringFromDate:date]; //a string of the date that I want to use in other methods 

NSLog(@"Date: %@", [dateFormatter stringFromDate:date]); 
+0

Вы создали недвижимость с IBOutlet? если да, то не выполняйте alloc и init, потому что он создаст другой экземпляр UIDatePicker, и ваш выбор даты не повлияет на текущий код. – Amol

ответ

2

Дата по умолчанию UIDatePicker - это текущая дата, и именно это вы печатаете. Для выбранного использования даты

[self.myDatePicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged]; 

- (void)datePickerChanged:(UIDatePicker *)datePicker 
{ 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"]; 
NSString *strDate = [dateFormatter stringFromDate:datePicker.date]; 
NSLog(@"Date: %@", strDate); 
} 
Смежные вопросы