当从框架中呈现模态视图时,如何检测何时按下“完成”按钮

时间:2013-01-01 15:37:58

标签: objective-c ios cocoa-touch if-statement

如果从框架(在我的案例中为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];


}

2 个答案:

答案 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应与“完成”按钮相对应。