2012-01-25 7 views
0

私は自分のアプリからイベントを追加する必要があり、日付ピッカーから日付を選択してテキストボックスにイベントを書き込むことを頼みたいと思っています。私はこの は、私はこのコードを使用していますが-eventEditViewController:didCompleteWithAction:メソッドを実装してくださいイベントキットとイベントをアプリケーションからカレンダーに追加

- (void)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]; 

    [super viewDidLoad]; 
} 

-(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 = @"a"; 

    // 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]; 
} 

答えて

3

まず輸入EventKitUI/EventKitUI.h、EventKit/EventKit.hフレームワークを。これはDefault iCal(iPhoneカレンダー)にイベントを追加するためのコードです。

-(IBAction) addEvent:(id)sender 
    { 
       EKEventStore *eventStore = [[[EKEventStore alloc] init] autorelease]; 
       EKEvent *events = [EKEvent eventWithEventStore:eventStore]; 

       events.title = @"Title"; 
       events.notes = @"Description"; 
       events.location = @"Location"; 
       events.startDate = [NSDate date]; 
       events.endDate = [NSDate date]; 
       events.availability = EKEventAvailabilityFree; 

       [events setCalendar:[eventStore defaultCalendarForNewEvents]]; 
       NSError *err; 
       [eventStore saveEvent:events span:EKSpanThisEvent error:&err]; 
       NSLog(@"Error From iCal : %@", [err description]); 
    } 

その後、私はこれらのコードを使用している、それは私のために働いている

EKEventEditViewController *editViewController = [[EKEventEditViewController alloc] init]; 
     editViewController.editViewDelegate = self; 
     editViewController.event = event3; 
     editViewController.eventStore = eventStore1; 
     [self presentModalViewController:editViewController animated:YES]; 

、EKEventEditViewControllerで保存されたイベントを表示するには、このコードを使用します。ありがとう。

0

を働いていないeventkit

使用のフレームワークですか?

ない場合は、以下のような何か:あなたのヘッダファイル内

- (void)eventEditViewController:(EKEventEditViewController *)controller didCompleteWithAction:(EKEventEditViewAction)action { 
    [self dismissModalViewControllerAnimated:YES]; 

    EKEventStore *eventStore = [[[EKEventStore alloc] init] autorelease]; 
    NSError *error = NULL; 

    [eventStore saveEvent:controller.event span:EKSpanThisEvent error:&error]; 

    if (error != NULL) 
     NSLog(@"%@",[error localizedDescription]); 
} 
関連する問題