注意:Event Kit UI framework只支持IOS系统,而不支持OS X。
Event Kit UI Framework提供两种视图控制器:
- EKEventViewController:用来展示事件信息
- EKEventEditViewController:用来创建、修改或删除事件
展示事件数据
展示事件使用EKEventViewController,首先需要从Event store中获取到一个存在的事件,然后设置到event属性中,如果不想用户编辑,则可以设置EKEventViewController.allowsEditing = NO。
EKEventViewController *eventViewController = [[EKEventViewController alloc] init];
eventViewController.event = myEvent;
eventViewController.allowsEditing = YES;
navigationController = [[UINavigationController alloc] initWithRootViewController:eventViewController];
另外,使用EKEventViewController需要添加EKEventViewDelegate,并实现eventViewController:didCompleteWithAction: 方法。
修改事件数据
类EKEventEditViewController使用EKEventEditViewDelegate协议,使用该类可以创建、修改和删除事件。该类与EKEventViewController类很像,不同的是,EKEventEditViewController 必须设置的是eventStore属性,而event属性是可选的。
- 如果event = nil,则表示创建
- 如果event != nil,则表示是编辑事件,这个事件必须驻留在指定的Event store中,否则就会发生异常
EKEventEditViewController实例在展示时为模态窗口,代码如下所示:
EKEventEditViewController* controller = [[EKEventEditViewController alloc] init];
controller.eventStore = myEventStore;
controller.editViewDelegate = self;
[self presentModalViewController:controller animated:YES];
该类也需要实现EKEventEditViewDelegate协议,并在eventEditViewController:didCompleteWithAction:方法中释放掉该模态窗口,如下所示:
- (void)eventEditViewController:(EKEventEditViewController *)controller
didCompleteWithAction:(EKEventEditViewAction)action
{
[self dismissModalViewControllerAnimated:YES];
}
在上面的方法中,action表示最后执行的动作,可能是取消、保存或删除事件,你需要根据具体情况具体分析。