IOS 日历相关开发

Event Kit 框架

iOS 4.0引入了 Event Kit框架 (EventKit.framework)。此框架为访问用户设备的日历事件提供接口。您可以通过该框架访问用户日历中现有事件,可以增加新事件。日历事件可包含闹铃,而且可以配置闹铃激活规则。

一:using enevt kit

1:get existing events

2:create new events

3:delete events

4:be notified of event changes

 

 

二:create new events

    1:add EventKit.framework

 

2:导入头文件

C代码   收藏代码
  1. #import <EventKit/EventKit.h>

3:

C代码   收藏代码
  1. -(IBAction) createEvent {  
  2.   
  3.  // Get the event store object  
  4.  EKEventStore *eventStore = [[EKEventStore alloc] init];  
  5.    
  6.  // Create a new event  
  7.   EKEvent *event  = [EKEvent eventWithEventStore:eventStore];  
  8.    
  9.  // Create NSDates to hold the start and end date  
  10.  NSDate *startDate = [[NSDate alloc] init];  
  11.  NSDate *endDate  = [[NSDate alloc] init];  
  12.    
  13.  // Set properties of the new event object  
  14.     event.title     = @"Title for new event";  
  15.     event.startDate = startDate;  
  16.     event.endDate   = endDate;  
  17.     event.allDay = YES;  
  18.    
  19.  // set event's calendar to the default calendar  
  20.     [event setCalendar:[eventStore defaultCalendarForNewEvents]];  
  21.    
  22.  // Create an NSError pointer  
  23.      NSError *err;  
  24.    
  25.  // Save the event  
  26.     [eventStore saveEvent:event span:EKSpanThisEvent error:&err];   
  27.   
  28.  // Test for errors  
  29.  if (err == noErr) {  
  30.   UIAlertView *alert = [[UIAlertView alloc]  
  31.          initWithTitle:@"Event Created"   
  32.          message:@"How about that?"   
  33.          delegate:nil  
  34.          cancelButtonTitle:@"Okay"   
  35.          otherButtonTitles:nil];  
  36.   [alert show];  
  37.   [alert release];  
  38.  }  
  39.    
  40.  // Release objects  
  41.  [startDate release];  
  42.  [endDate release];  
  43.  [eventStore release];   
  44. }  

 三:Event Kit UI 框架。

在你的app中调用event kit ui

 

1:导入头文件

C代码   收藏代码
  1. #import <EventKitUI/EventKitUI.h>  

 

 

 

 

 

@interface CreateEventViewController : UIViewController <EKEventEditViewDelegate>

2:

C代码   收藏代码
  1. -(IBAction) createEvent {  
  2.     // Get the event store object  
  3.  EKEventStore *eventStore = [[EKEventStore alloc] init];  
  4.   
  5.  // Create the EditViewController  
  6.  EKEventEditViewController* controller =[[EKEventEditViewController alloc] init];  
  7.   
  8.     controller.eventStore = eventStore;  
  9.     controller.editViewDelegate = self;  
  10.    
  11.     [self presentModalViewController: controller animated:YES];  
  12.    
  13.     [controller release];  
  14.   
  15. }  

 3:delegate method for EKEventEditViewDelegate 

C代码   收藏代码
  1. // delegate method for EKEventEditViewDelegate  
  2. - (void)eventEditViewController:(EKEventEditViewController *)controller    didCompleteWithAction:(EKEventEditViewAction)action {  
  3.     [self dismissModalViewControllerAnimated:YES];  
  4. }  



引入 EventKit.framework
#import <EventKit/EventKit.h>
#import <EventKitUI/EventKitUI.h>
  // Get the event store object  
    EKEventStore *eventStore = [[EKEventStorealloc]init];  
    
    // Create a new event  
    EKEvent *event  = [EKEventeventWithEventStore:eventStore];  
    
    // Create NSDates to hold the start and end date  
    NSDate *startDate = [[NSDatealloc]init];  
    NSDate *endDate  = [[NSDatealloc]initWithTimeIntervalSinceNow:300];  
    
    // Set properties of the new event object  
    event.title     =@"胡峰";  
    event.startDate = startDate;  
    event.endDate   = endDate;  
    event.allDay =NO;  
    NSMutableArray *myAlarmsArray = [[NSMutableArrayalloc]init];
    
    EKAlarm *alarm1 = [EKAlarmalarmWithRelativeOffset:-60];// 1 minutes
    EKAlarm *alarm2 = [EKAlarmalarmWithRelativeOffset:-86400];// 1 Day
    
    [myAlarmsArray addObject:alarm1];
    [myAlarmsArray addObject:alarm2];
    
    event.alarms = myAlarmsArray;
    [myAlarmsArray release];
    // set event's calendar to the default calendar  
    [event setCalendar:[eventStoredefaultCalendarForNewEvents]];  
    
    // Create an NSError pointer  
    NSError *err;  
    
    // Save the event  
    [eventStore saveEvent:eventspan:EKSpanThisEventerror:&err];   
    
    // Test for errors  
    if (err ==noErr) {  
        UIAlertView *alert = [[UIAlertViewalloc]  
                              initWithTitle:@"提醒时间创建"   
                              message:@"How about that?"   
                              delegate:nil  
                              cancelButtonTitle:@"Okay"   
                              otherButtonTitles:nil];  
        [alert show];  
        [alert release];  
    }  
    
    // Release objects  
    [startDate release];  
    [endDate release];  
    [eventStore release];   
——————————————————————————————
——————————————————————————————
  NSString* startDate = [_parameters objectForKey:@"startDate"];
    NSString* endDate = [_parameters objectForKey:@"endDate"];
    NSString* title = [_parameters objectForKey:@"title"];
    NSString* location = [_parameters objectForKey:@"location"];
    NSDate* start = [[NSDate alloc] initWithString: startDate];
    NSDate* end = [[NSDate alloc] initWithString: endDate];
    EKEventStore *eventStore = [[EKEventStore alloc] init];
    EKCalendar *cal = [eventStore defaultCalendarForNewEvents]; // Get the User's default calendar.  You could create a new calendar though for your team
    
    // Setup the Event
    EKEvent *event = [EKEvent eventWithEventStore: eventStore];
    EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:-300];
    [event addAlarm: alarm];
    [event setCalendar: cal];
    [event setTitle: title];
    [event setStartDate: start];
    [event setEndDate: end];
    [event setLocation: location]; 
    
    
    //Setup a new Event View Controller
    viewController = [[EKEventEditViewController alloc] initWithNibName:nil bundle: nil];
    viewController.eventStore = eventStore;
    viewController.event = event;
    UINavigationController *controller = [[NSClassFromString(@"NKBridge") sharedInstance] navigationControllerForPage:@"ergebnis.html"]; //Replace main.html with the page you will be calling the calendar from

    [controller presentModalViewController: viewController animated: YES];
    viewController.editViewDelegate=self;
    
    [startDate release];
    [endDate release];
    [title release];
    [location release];
    [start release];
    [end release];
    [eventStore release];
    [cal release];
    [event release];
    [alarm release]; 
    [controller release]; 



转自:http://blog.csdn.net/hufeng825/article/details/7237435

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值