我使用KALViewcontroller API在我的iPhone应用程序中显示日历。我想保存最后选择的日期,并在再次显示日历时将其显示为“突出显示”。 目前显示今天的日期。
在 KALViewController.m 中,一个函数 - (void)showAndSelectToday 负责显示今天的日期并突出显示今天的图块。
[[self calendarView] selectTodayIfVisible];
//where *calendarView* is
- (KalView*)calendarView
{
checkDateConf = TRUE;
checkDate = FALSE;
return (KalView*)self.view;
}
在 KalView.m
[gridView selectTodayIfVisible];
//其中gridView是KalGridView gridView;
在 KALGridView.m
中selectTodayIfVisible 被声明为
- (void)selectTodayIfVisible
{
KalTileView *todayTile = [frontMonthView todaysTileIfVisible];
if (todayTile)
self.selectedTile = todayTile;
}
请指导我如何突出显示所选日期。
答案 0 :(得分:1)
为了检测选择了哪个日期,我这样做了:
在KalViewController中查找didSelectDate(委托方法)并添加通知帖子。
#pragma mark KalViewDelegate protocol
- (void)didSelectDate:(KalDate *)date
{
//NSLog(@"DID select DATE:%@",date);
self.selectedDate = [date NSDate];
[[NSNotificationCenter defaultCenter] postNotificationName:@"DATA_SELECTED" object:[NSString stringWithFormat:@"%@",date]];
NSDate *from = [[date NSDate] cc_dateByMovingToBeginningOfDay];
NSDate *to = [[date NSDate] cc_dateByMovingToEndOfDay];
[self clearTable];
[dataSource loadItemsFromDate:from toDate:to];
[tableView reloadData];
[tableView flashScrollIndicators];
}
然后在您的视图中,使用Kal的Controller接收此帖子就像:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userSelectDate:) name:@"DATA_SELECTED" object:nil];
,调用的方法是:
-(void)userSelectDate:(NSNotification*)notification{
NSLog(@"date selected:%@",[notification object]);
}