gpt4 book ai didi

iphone - EKEventViewDelegate didCompleteWithAction 没有被调用

转载 作者:行者123 更新时间:2023-12-03 18:55:59 24 4
gpt4 key购买 nike

当 EKEventViewController 完成事件编辑时,我没有收到对 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];
}

我的类上确实有协议(protocol),并且该方法是通过复制并粘贴文档中的定义来实现的。它只是没有被调用。

如果我使用 EKEventEditViewController 及其相应的委托(delegate),那么在保存事件时就会调用它。

我也能够在 SimpleEKDemo 代码中重现该问题。有谁知道可能出了什么问题吗?

我可以放弃 View 功能并直接转到 EKEventEditViewController,但我不愿意。

最佳答案

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

为了解决这个问题,我对 EKEventViewController 进行了子类化,然后在子类的 viewDidLoad 中,我用自己的按钮替换了标准编辑按钮:


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

self.navigationItem.rightBarButtonItem = editItem;
}


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


- (void)editCalEvent {

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

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

[self presentModalViewController:editController animated:YES];

[editController release];

}


希望有帮助。

关于iphone - EKEventViewDelegate didCompleteWithAction 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4755155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com