Как добавить событие в календарь - PullRequest
1 голос
/ 20 ноября 2011

Я делаю календарь для iPad, где до сих пор У меня есть представление календаря, однако теперь мне нужно создать событие внутри него. В этом примере я использую YFCalendar http://www.yellowfield.co.uk/blog/?p=28

Теперь мне нужно добавить новое событие, которое можно добавить ко времени текущего дня.

однако я хочу увидеть сводку события в небольшом окне, похожем на календарь по умолчанию.

Example_Image: http://media.wiley.com/Lux/45/271245.image1.jpg

Я не знаю, какой контроль мне нужен для достижения этого результата.

Я не использую календарь по умолчанию

некоторые рекомендации? желательно что-то с открытым исходным кодом для анализа, в любом случае, любой ответ приветствуется

1 Ответ

0 голосов
/ 20 ноября 2011

См. Руководство по программированию набора событий, расположенное здесь:

http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/EventKitProgGuide/Introduction/Introduction.html

Вот пример кода Apple: https://developer.apple.com/library/ios/samplecode/SimpleEKDemo/Introduction/Intro.html

Код для добавления события использует EKEventEditViewController:

// Create an instance of EKEventEditViewController 
EKEventEditViewController *addController = [[EKEventEditViewController alloc] init];

// Set addController's event store to the current event store
addController.eventStore = self.eventStore;
addController.editViewDelegate = self;
[self presentViewController:addController animated:YES completion:nil];

После добавления вы можете извлекать события, используя код из этого учебника, который извлекает события с предикатом (в данном случае дата):

NSDate *startDate = [NSDate date];

//Create the end date components
NSDateComponents *tomorrowDateComponents = [[NSDateComponents alloc] init];
tomorrowDateComponents.day = 1;

NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:tomorrowDateComponents
                                                                toDate:startDate
                                                               options:0];
// We will only search the default calendar for our events
NSArray *calendarArray = [NSArray arrayWithObject:self.defaultCalendar];

// Create the predicate
NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate
                                                                  endDate:endDate
                                                                calendars:calendarArray];

// Fetch all events that match the predicate
NSMutableArray *events = [NSMutableArray arrayWithArray:[self.eventStore eventsMatchingPredicate:predicate]];

return events;
...