3

ユーザーがイベントを削除したときにも削除するために、イベントをiPhoneカレンダーに保存しようとしています。以下は、イベントの作成と編集に使用しているコードです。

// Upon selecting an event, create an EKEventViewController to display the event.
EKEventEditViewController *editController = [[EKEventEditViewController alloc] init];
editController.event =  [eventsList objectAtIndex:indexPath.row];
editController.eventStore = self.eventStore;
editController.editViewDelegate = self;
itsSelectedReminder = indexPath.row;
isReminderDeleted = TRUE;
[editController.navigationBar setTintColor:[UIColor colorWithRed:67/255.0 green:114/255.0 blue:18/255.0 alpha:1]]; 
[self presentModalViewController:editController animated:YES];

[editController release];
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 

次に、ユーザーがアクションを追加、編集、または削除すると、次のコードを使用してイベントをキャッチします。

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

追加と編集には完璧に機能しますが、削除しようとするとメソッドが数回呼び出されるため、アプリがクラッシュします。どんな助けでも大歓迎です。できるだけ早く助けてください。

前もって感謝します

よろしく、

ディリップ...

4

1 に答える 1

1

コントローラーの editViewDelegate を完了直後に nil に設定します。

func eventEditViewController(controller: EKEventEditViewController, didCompleteWithAction action: EKEventEditViewAction) {

    // prevent additional calls for the same action
    controller.editViewDelegate = nil 

    // whatever else you want to do
    dismissViewControllerAnimated(true) {
    }
    ...
}
于 2016-05-04T03:44:55.047 に答える