1

如果从框架(在我的情况下为 eventkit)呈现模态视图,那么检测取消或完成按钮是否被按下的正确方法是什么。在我的didCompleteWithaction模态视图被关闭的示例中,警报视图被触发。Done我希望仅在按下按钮而不是取消按钮时才触发警报视图。

我最初的想法if是按下完成按钮时的声明,但是我不确定如何获得完成按钮的属性。

- (void)eventEditViewController:(EKEventEditViewController *)controller
      didCompleteWithAction:(EKEventEditViewAction)action {

// Dismiss the modal view controller
[controller dismissModalViewControllerAnimated:YES];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"message" message:@"Added to calender" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];

[alert show];


}
4

2 回答 2

1

查看委托的协议参考:苹果文档

您必须检查action委托方法的参数,因为它代表用户选择的操作。

例如

- (void)eventEditViewController:(EKEventEditViewController *)controller
      didCompleteWithAction:(EKEventEditViewAction)action {

// Dismiss the modal view controller
[controller dismissModalViewControllerAnimated:YES];

//this checks what action the user chose:
if (action == EKEventEditViewActionSaved) {
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"message" message:@"Added to calender" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];

     [alert show];
     }


}

我不知道“完成”按钮会触发什么动作,可能是 ...ActionSaved - 但请自己检查一下。

于 2013-01-01T15:44:23.237 回答
1

我可能很遥远,但action参数不是你想要的吗?

EKEventEditViewAction

描述用户为结束编辑所采取的操作。

typedef enum {
   EKEventEditViewActionCanceled,
   EKEventEditViewActionSaved,
   EKEventEditViewActionDeleted
} EKEventEditViewAction;

我想EKEventEditViewActionSaved应该对应于完成按钮。

于 2013-01-01T15:45:32.520 回答