无法在弹出窗口中从日历设置UITextField的值

时间:2011-12-08 16:17:25

标签: ios xcode ipad uitextfield uipopovercontroller

好吧,在我的应用程序中有textfield,其中包含一些日期。 Textfield不能为用户编辑,但它要求使用日历(Tapku日历,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 == nil。我不知道要解决这个问题。

1 个答案:

答案 0 :(得分:0)

您在ViewController方法中使用的calendarMonthView:didSelectDate:不是屏幕上显示的那个,因为您在执行时初始化新的<{p}

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

您需要在ViewController中保留对现有Calendar_Popover_Controller的引用,并在该DateFromCalendar上设置{{1}}。