如果从框架(在我的案例中为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];
}
答案 0 :(得分:1)
查看代理人的协议参考:apple documentation
您必须检查委托方法的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 - 但请自行查看。
答案 1 :(得分:1)
我可能会离开,但不是action
parameter你想要的是什么?
EKEventEditViewAction
描述用户结束编辑所采取的操作。
typedef enum {
EKEventEditViewActionCanceled,
EKEventEditViewActionSaved,
EKEventEditViewActionDeleted
} EKEventEditViewAction;
我认为EKEventEditViewActionSaved
应与“完成”按钮相对应。