2011-06-07 83 views

回答

6

你可以去,通过这个代码的GitHub如果你想在你的应用程序压延事件为合成这将真正帮助你...

https://github.com/klazuka/Kal

希望这将解决您的问题...

还有一句: -

对于实施压延并与压延机的数据同步,你必须通过添加事件框架的工作在你的代码来实现压延: -

EventKitUI.framework

EventKit.framework

将这些帧必须更新UR的viewController中,你必须给更新的选项压延或报警选项后,加入这两个框架为calander。

进口这两个在.h文件中

#import <EventKit/EventKit.h> 
#import <EventKitUI/EventKitUI.h> 

EKEventEditViewDelegate协议,

使这些类

EKEventViewController *detailViewController; 
EKEventStore *eventStore; 
EKCalendar *defaultCalendar; 
NSMutableArray *eventsList; 

的对象,使@property的和@synthesize然后

为calander中的addEvents做一个方法

-(IBAction) addEvent:(id)sender; 

再这样去.m文件

@synthesize属性之后。

在您的viewDidLoad方法

添加了这些: -

self.eventStore = [[EKEventStore alloc] init]; 


    self.eventsList = [[NSMutableArray alloc] initWithArray:0]; 

    // Get the default calendar from store. 
    self.defaultCalendar = [self.eventStore defaultCalendarForNewEvents]; 

    // create an Add button 
    UIBarButtonItem *addButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"bell.png" ] style:UIBarButtonItemStylePlain target:self action:@selector(addEvent:)]; 
    //UIBarButtonItem *addButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(addEvent:)]; 
    self.navigationItem.rightBarButtonItem = addButtonItem; 
    [addButtonItem release]; 


and added this... 

    #pragma mark - 

#pragma mark Add a new Event 
-(IBAction) addEvent:(id)sender { 

    self.eventStore = [[EKEventStore alloc] init]; 
    EKEvent *event = [EKEvent eventWithEventStore:eventStore]; 
    // event.title [email protected]"Whatever you want your title to be"; 
    event.title = self.currentTitle; 

// NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    event.allDay = YES; 

    EKEventEditViewController *addController = [[EKEventEditViewController alloc] initWithNibName:nil bundle:nil]; 
    addController.event = event; 
    addController.eventStore = self.eventStore; 
    [self presentModalViewController:addController animated:YES]; 

    addController.editViewDelegate = self; 
    [addController release]; 

} 


#pragma mark - 
#pragma mark EKEventEditViewDelegate 

// Overriding EKEventEditViewDelegate method to update event store according to user actions. 
- (void)eventEditViewController:(EKEventEditViewController *)controller 
      didCompleteWithAction:(EKEventEditViewAction)action { 

    NSError *error = nil; 
    EKEvent *thisEvent = controller.event; 

    switch (action) { 
     case EKEventEditViewActionCanceled: 
      // Edit action canceled, do nothing. 
      break; 

     case EKEventEditViewActionSaved: 
      // When user hit "Done" button, save the newly created event to the event store, 
      // and reload table view. 
      // If the new event is being added to the default calendar, then update its 
      // eventsList. 
      if (self.defaultCalendar == thisEvent.calendar) { 
       [self.eventsList addObject:thisEvent]; 
      } 
      [controller.eventStore saveEvent:controller.event span:EKSpanThisEvent error:&error]; 
      // [self.tableView reloadData]; 
      break; 

     case EKEventEditViewActionDeleted: 
      // When deleting an event, remove the event from the event store, 
      // and reload table view. 
      // If deleting an event from the currenly default calendar, then update its 
      // eventsList. 
      if (self.defaultCalendar == thisEvent.calendar) { 
       [self.eventsList removeObject:thisEvent]; 
      } 
      [controller.eventStore removeEvent:thisEvent span:EKSpanThisEvent error:&error]; 
      //[self.tableView reloadData]; 
      break; 

     default: 
      break; 
    } 
    // Dismiss the modal view controller 
    [controller dismissModalViewControllerAnimated:YES]; 

} 


// Set the calendar edited by EKEventEditViewController to our chosen calendar - the default calendar. 
- (EKCalendar *)eventEditViewControllerDefaultCalendarForNewEvents:(EKEventEditViewController *)controller { 
    EKCalendar *calendarForEdit = self.defaultCalendar; 
    return calendarForEdit; 
} 

现在我想你理解的代码... 感谢....

+0

我需要从我的app中更新ios日历。它可以.pls帮助。 – 2011-06-13 10:17:20

+0

噢多数民众赞成简单只是使用事件工具包在你的代码更新从iOS应用程序的ios ccalender ... – user755278 2011-06-13 13:16:25

+0

请用户755278你可以给我任何链接或一些代码来启动此。 – 2011-06-16 08:39:25

相关问题