Iphone EKEventViewDelegate未完成,未调用操作

Iphone EKEventViewDelegate未完成,未调用操作,iphone,eventkit,Iphone,Eventkit,EKEventViewController完成事件的EDT后,我没有收到对我的eventViewController:didCompleteWithAction:的调用 我是这样设置的: - (void)showCalendar:(id)sender { EKEventViewController *eventViewController = [[EKEventViewController alloc] init]; eventViewController.delegate

EKEventViewController完成事件的EDT后,我没有收到对我的eventViewController:didCompleteWithAction:的调用

我是这样设置的:


- (void)showCalendar:(id)sender {
    EKEventViewController *eventViewController = [[EKEventViewController alloc] init];

    eventViewController.delegate = self;

    eventViewController.event = self.event;

    // Allow event editing.
    eventViewController.allowsEditing = YES;

    [self.navigationController pushViewController:eventViewController animated:YES];
    [eventViewController release];
}
我的类中有协议,方法是通过复制和粘贴文档中的定义来实现的。只是没人打电话

如果我使用EKEventEditViewController及其相应的委托,则在保存事件时会调用该委托

我也能够在SimpleEKDemo代码中重现这个问题。有人知道可能出了什么问题吗


我可以直接删除视图功能并转到EKEventEditViewController,但我不想这样做。

在这个.m文件中,您需要导入EventKit/EventKit.h和EventKitUI/EventKitUI.h 在.h文件中,您需要实现“EKEventViewDelegate”委托


希望对您有所帮助

可能有点晚了,但我也遇到了这个问题

为了解决这个问题,我将其子类化为
EKEventViewController
,然后在子类“
viewDidLoad
中,我将标准的编辑按钮替换为我自己的一个:


- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *editItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self.delegate action:@selector(editCalEvent)];

    self.navigationItem.rightBarButtonItem = editItem;
}

这样,当您想要编辑事件时,可以设置自己的
EKEventEditViewController
,并指定其委托以响应更改:


- (void)editCalEvent {

    EKEventEditViewController *editController = [[EKEventEditViewController alloc] init];

    editController.event = editingEvent;
    editController.eventStore = self.eventStore;
    editController.editViewDelegate = self;

    [self presentModalViewController:editController animated:YES];

    [editController release];

}


希望对您有所帮助。

我在使用“pushViewController”时遇到了类似的问题,结果是它将转到

-(无效)导航控制器:(UINavigationController*)导航控制器
willShowViewController:(UIViewController*)已设置动画的viewController:(BOOL)已设置动画的{}

但在我更改为“presentModalViewController”后,当按下“完成/取消/删除”时,它将转到“eventViewController:didCompleteWithAction:”。

这似乎是库中相当明显的遗漏。我的解决方法:我在UINavigationController中演示EKEventViewController。我在控制器的viewWillExample方法中检测到完成,然后将EKEventViewController推到视图堆栈上。由于弹出EKEventViewController,因此在此视图控制器中使用布尔变量来跟踪和区分初始外观和重新外观。您的代码有可能在其他时间被调用,但如果您只是刷新TableView等,那么这就足够了。

我有过这些。然而,我只是注意到,当我接受或拒绝活动邀请时,代表确实接到了电话。如果我从EKEventViewControllerI中编辑本地创建的事件,我就不会被调用,因为我得到了相同的行为。删除事件时调用委托,但编辑事件时不调用委托。我将EKEventViewController作为常规VC(即,非模态)推送到导航控制器堆栈上。您是如何呈现它的?如上面的代码所示。我正在把它推到堆栈上。我在iPad上遇到了类似的问题。最初尝试放置在模式popover中,但未收到任何回调。切换到使用presentModalViewController,一切正常。