Отображение «прошлых» и «предстоящих» разделов UITableView с FetchedResultsController - PullRequest
0 голосов
/ 04 декабря 2011

У меня возникли трудности с группированием представления таблицы по прошлым и предстоящим. Это будет определяться полем даты в моей модели базовых данных. Таким образом, все элементы с датой> сегодня будут доступны, а все с датой <сегодня будут считаться прошедшими. Любое понимание этого будет с благодарностью. </p>

1 Ответ

0 голосов
/ 04 декабря 2011

Вы можете использовать эту функцию в вашем классе сущностей:

-(NSString*)dateToStringForSectionTitels{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *formattedDateString;
[dateFormatter locale];

NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];
NSDate *today = [cal dateFromComponents:components];
components = [cal components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:self.startDate];
NSDate *otherDate = [cal dateFromComponents:components];

if([today isEqualToDate:otherDate]) {
    formattedDateString = @"Today";
}else{
    [dateFormatter setDateStyle:NSDateFormatterShortStyle];
    formattedDateString = [dateFormatter stringFromDate:self.startDate];
}

NSTimeInterval distanceBetweenDates = [self.startDate timeIntervalSinceDate:[NSDate date]];
double secondsInAnMinute = 60;
NSInteger minutsBetweenDates = distanceBetweenDates / secondsInAnMinute;

if (minutsBetweenDates<30) {
   formattedDateString = @"Starting Soon";
}else if(minutsBetweenDates<0){
   formattedDateString = @"In the past"; 
}


return formattedDateString;

}

Вернется

  1. Дата в строке, если событие в будущем
  2. «Сегодня», если событие сегодня.
  3. «Скоро начнется», если мероприятие начнется через 30 минут - (Вы можете выбрать любое желаемое значение.
  4. «В прошлом», если событие в прошлом.

Затем просто передайте dateToStringForSectionTitels вашему контроллеру результатов выборки.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...