无法从弹出窗口中的日历为 UITextField 设置值
Posted
技术标签:
【中文标题】无法从弹出窗口中的日历为 UITextField 设置值【英文标题】:Can't set value to UITextField from calendar in popover 【发布时间】:2011-12-08 16:17:25 【问题描述】:嗯,在我的应用程序中有一个文本字段,其中包含一些日期。文本字段对用户来说是不可编辑的,但它要求带有日历的弹出窗口(Tapku 日历,顺便说一句)。我需要将日历中的选定日期粘贴到此文本字段中。我正在尝试此代码,但它对我不起作用。
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】:你在calendarMonthView:didSelectDate:
方法中使用的ViewController
不是屏幕上显示的那个,因为你在做的时候初始化了一个新的
ViewController *submittedDateToMainView = [[ViewController alloc] init];
您需要在 Calendar_Popover_Controller
中保留对现有 ViewController
的引用,并在该引用上设置 DateFromCalendar
。
【讨论】:
谢谢!我明白,你在说什么,但你能展示一些示例代码吗?我是 Xcode 的新手。以上是关于无法从弹出窗口中的日历为 UITextField 设置值的主要内容,如果未能解决你的问题,请参考以下文章