Не могу установить значение UITextField из календаря в поповере - PullRequest
0 голосов
/ 08 декабря 2011

Ну, в моем приложении есть текстовое поле, которое содержит некоторую дату. Textfield недоступно для редактирования пользователем, но требует всплывающего окна с календарем (Tapku Calendar, BTW). Мне нужно вставить выбранную дату в календаре в это текстовое поле. Я пробовал этот код, но он не работал для меня.

Код в Calendar_Popover_Controller.m:

// grab (NSString*)Date from calendar and sending it to ChekIn field
- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {

NSDate *calendarSelectedDate = [[NSDate alloc] init];
/* Here is formattedDate */

calendarSelectedDate = [calendar dateSelected];
DateForMainView = [formattedDate stringFromDate:calendarSelectedDate];

ViewController *submittedDateToMainView = [[ViewController alloc] init];
submittedDateToMainView.CheckInField.text = [formattedDate stringFromDate:calendarSelectedDate];
}

Также я проверю другой вариант. Кажется так:

Calendar_Popover_Controller.m

- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {

NSDate *calendarSelectedDate = [[NSDate alloc] init];;
/* formattedDate */

calendarSelectedDate = [calendar dateSelected];
DateForMainView = [formattedDate stringFromDate:calendarSelectedDate];
ViewController *submittedDateToMainView = [[ViewController alloc] init];
submittedDateToMainView.DateFromCalendar = DateForMainView;
}

Код в ViewController.m:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController {
[CheckInField setText:DateFromCalendar];

NSLog(@"For CheckIn TextField DateFromCalendar is: %@", DateFromCalendar);
NSLog(@"popover about to be dismissed");
return YES;
}

Здесь DateFromCalendar == все равно ноль. Я понятия не имею, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 09 декабря 2011

ViewController, который вы используете в методе calendarMonthView:didSelectDate:, не тот, который отображается на экране, потому что вы инициализируете новый при выполнении

ViewController *submittedDateToMainView = [[ViewController alloc] init];

Вам нужно сохранить ссылку на ваш существующий ViewController в вашем Calendar_Popover_Controller и установить DateFromCalendar на этом.

...