七、关于事件提供的接口

来源:互联网 发布:数据安全分级 编辑:程序博客网 时间:2024/05/18 22:40
注意: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表示最后执行的动作,可能是取消、保存或删除事件,你需要根据具体情况具体分析。

0 0
原创粉丝点击