Как показать одну дату в перезагрузке нескольких событий в MBCalendarKit
Я использую представление календаря в моем проекте. Я использую MBCalendarKit. Это время единственная дата в одном событии шоу. Но я хочу одну дату на нескольких мероприятиях шоу. Но как это возможно, пожалуйста, помогите.
- (void) viewWillAppear: (BOOL)animated{
NSArray *title = [_caldevice valueForKey:@"pill"];
// NSLog(@"event name fetch %@",title);
NSArray *date =[_caldevice valueForKey:@"datetaken"];
// NSLog(@"event fetch %@",date);
NSArray*dose= [_caldevice valueForKey:@"dose"];
NSString *title1;
NSString*title2;
NSDate *date1;
NSData *imgdata;
CKCalendarEvent *releaseUpdatedCalendarKit;
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd-MM-yyyy";
for (int i = 0; i < [date count]; i++){
title1 = NSLocalizedString(title[i], @"");
title2 = NSLocalizedString(dose[i], @"");
NSString *combined = [NSString stringWithFormat:@"%@ - %@", title1, title2];
date1 = [dateFormatter dateFromString:date[i]];
releaseUpdatedCalendarKit = [CKCalendarEvent eventWithTitle:combined andDate:date1 andInfo:Nil];
// NSLog(@"Event: %@ , %@",combined,date1);
// releaseUpdatedCalendarKit = [CKCalendarEvent eventWithTitle:combined andDate:date1 andInfo:Nil andColor:[UIColor blueColor]];
self.data[date1] = @[releaseUpdatedCalendarKit];
}
}
1 ответ
Вы перебираете группу событий, и для каждого события вы * заменяете ранее назначенный массив новым, содержащим один элемент.
Заменить это:
self.data[date1] = @[releaseUpdatedCalendarKit];
с чем-то вроде этого:
// 1. First, get the previous events for that day.
NSMutableArray <CKCalendarEvent *> *events = self.data[date1].mutableCopy;
// 2. If events exist, append the event, otherwise create an empty array with the new event.
if (events) {
[events addObject: newEvent];
}
else {
events = @[newEvent];
}
// 3. Set the events for the date key.
self.data[date1] = events;
Таким образом, вы выполняете операцию "добавить или создать", а не перезаписывать каждый раз.
Раскрытие: я написал и поддерживаю MBCalendarKit.