创建一个提醒列表,该列表可以将您的提醒保存在通过我的应用创建的提醒应用中

时间:2019-06-23 19:30:20

标签: ios swift eventkit ekeventstore ekreminder

因此,我有一个可以在其中创建提醒并将其添加到iPhone上的Reminder App的应用程序。但是在提醒应用中,它们具有不同的列表或类别。我想为我的应用创建自己的类别。然后,我想向该类别添加提醒。

所以我的代码片段基本上是一个按钮,然后向随机列表(我认为)添加了提醒。但我希望将提醒发送到该应用(我的应用)需要创建的特定列表(在提醒应用中)。如果已经创建了列表,则需要使用该列表。

var eventStore = EKEventStore()
@IBAction func ActSetReminder(_ sender: Any) {
    let reminder = EKReminder(eventStore: self.eventStore)
    reminder.calendar = eventStore.defaultCalendarForNewReminders()    
    reminder.title = "the title doesn't matter to you"
    reminder.isCompleted = false


}

这是该方法的超基本版本,它会执行其他对该问题不重要的工作。班上还有其他凝灰岩,例如viewedload和类似的东西。

如果您需要更多代码或有任何疑问,请问我!

1 个答案:

答案 0 :(得分:1)

就日历框架而言,提醒类别只是一个日历。

您可以使用此方法,它检查捆绑名称的(提醒)日历是否存在。如果确实返回,则创建一个。

该方法假定存在eventStore实例的属性EKEventStore

func reminderCategory() throws -> EKCalendar {
    let calendars = eventStore.calendars(for: .reminder)
    let bundleName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as! String
    if let bundleCalendar = calendars.first(where: {$0.title == bundleName}) { return bundleCalendar }

    let calendar = EKCalendar(for: .reminder, eventStore: eventStore)
    calendar.title = bundleName
    calendar.source = eventStore.defaultCalendarForNewReminders()?.source
    try eventStore.saveCalendar(calendar, commit: true)
    return calendar
}