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:导入头文件
- #import <EventKit/EventKit.h>
3:
- -(IBAction) createEvent {
- // Get the event store object
- EKEventStore *eventStore = [[EKEventStore alloc] init];
- // Create a new event
- EKEvent *event = [EKEvent eventWithEventStore:eventStore];
- // Create NSDates to hold the start and end date
- NSDate *startDate = [[NSDate alloc] init];
- NSDate *endDate = [[NSDate alloc] init];
- // Set properties of the new event object
- event.title = @"Title for new event";
- event.startDate = startDate;
- event.endDate = endDate;
- event.allDay = YES;
- // set event's calendar to the default calendar
- [event setCalendar:[eventStore defaultCalendarForNewEvents]];
- // Create an NSError pointer
- NSError *err;
- // Save the event
- [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
- // Test for errors
- if (err == noErr) {
- UIAlertView *alert = [[UIAlertView alloc]
- initWithTitle:@"Event Created"
- message:@"How about that?"
- delegate:nil
- cancelButtonTitle:@"Okay"
- otherButtonTitles:nil];
- [alert show];
- [alert release];
- }
- // Release objects
- [startDate release];
- [endDate release];
- [eventStore release];
- }
三:Event Kit UI 框架。
在你的app中调用event kit ui
1:导入头文件
- #import <EventKitUI/EventKitUI.h>
@interface CreateEventViewController : UIViewController <EKEventEditViewDelegate>
2:
- -(IBAction) createEvent {
- // Get the event store object
- EKEventStore *eventStore = [[EKEventStore alloc] init];
- // Create the EditViewController
- EKEventEditViewController* controller =[[EKEventEditViewController alloc] init];
- controller.eventStore = eventStore;
- controller.editViewDelegate = self;
- [self presentModalViewController: controller animated:YES];
- [controller release];
- }
3:delegate method for EKEventEditViewDelegate
- // delegate method for EKEventEditViewDelegate
- - (void)eventEditViewController:(EKEventEditViewController *)controller didCompleteWithAction:(EKEventEditViewAction)action {
- [self dismissModalViewControllerAnimated:YES];
- }
引入 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