iPhone sdk-在KALViewController中保存上次选择的日期

时间:2012-06-13 09:40:02

标签: iphone objective-c ios ios4

我使用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;
}

请指导我如何突出显示所选日期。

1 个答案:

答案 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]);
}