iOS EKEventEditViewController如何强制警报到"在事件发生时#34;?

时间:2013-12-02 11:10:49

标签: ios alert alarm eventkit

2部分问题: 使用SDK的视图控制器添加事件是有效的,但我希望将其默认为Alert =“在事件发生时”或任何其他可用选项;我怎么做?。 其次,我希望在事件结束时显示警告。我尝试将一个EKAlarm集添加到endDate,但没有触发警报。可以在使用SDK的EKEventEditViewController时完成吗?

如果我正在尝试自定义EKEventEditViewController的类别,那么我认为SO上的大多数其他Q表示不允许example

以下是代码(iOS 7):

- (void)eventEditViewController:(EKEventEditViewController *)controller
      didCompleteWithAction:(EKEventEditViewAction)action{
AlarmTimerTriggersTVC * __weak weakSelf = self;
// Dismiss the modal view controller
[self dismissViewControllerAnimated:YES completion:^
 {
     if (action != EKEventEditViewActionCanceled)
     {
         dispatch_async(dispatch_get_main_queue(), ^{

             EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:controller.event.endDate];
             controller.event.alarms = [NSArray arrayWithObject:alarm];

             // Re-fetch all events happening in the next 24 hours
             weakSelf.eventsList = [self fetchEvents];
             // Update the UI with the above events
             [weakSelf.tableView reloadData];
             });
         }
     }];
}

1 个答案:

答案 0 :(得分:2)

尝试在设置闹钟后保存事件

EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:controller.event.endDate];
controller.event.alarms = [NSArray arrayWithObject:alarm];

NSError* error = nil;

[eventStore saveEvent: controller.event
                 span: span
                error: &error]; 

编辑:

事件发生的时间是这样的

controller.event.alarms = [NSArray arrayWithObject:
                           [EKAlarm alarmWithRelativeOffset: 0]];