好吧,在我的应用程序中有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。我不知道要解决这个问题。
答案 0 :(得分:0)
您在ViewController
方法中使用的calendarMonthView:didSelectDate:
不是屏幕上显示的那个,因为您在执行时初始化新的<{p}
ViewController *submittedDateToMainView = [[ViewController alloc] init];
您需要在ViewController
中保留对现有Calendar_Popover_Controller
的引用,并在该DateFromCalendar
上设置{{1}}。