Swift UIEventKit - 为特定日期创建活动

时间:2016-03-18 00:31:41

标签: swift uievent

我对swift很新,所以我只是希望有人可以帮助我 - 我正在尝试使用UIEventKit向日历添加一个事件(我已经想出了怎么做)但是有两件事情我不确定:

1 - 我希望能够将事件添加到特定日期的下一个实例。例如。下一个星期一

2 - 我希望能够在当天重复该事件一定次数 - 让我们说4。

任何人都可以提供以上任何一项的任何帮助将不胜感激!

这是我到目前为止所拥有的:

func createEvent(eventStore: EKEventStore, title: String, startDate: NSDate, endDate: NSDate){
    let event = EKEvent(eventStore: eventStore)

    event.title = title
    event.startDate = startDate
    event.endDate = endDate
    event.calendar = eventStore.defaultCalendarForNewEvents
    do {
        try eventStore.saveEvent(event, span: .ThisEvent)
    }catch {
        let alertView = UIAlertController(title: "Access Denied", message: "Please change your settings to allow us to access your calendar", preferredStyle: UIAlertControllerStyle.Alert)

        alertView.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))

        self.presentViewController(alertView, animated: true, completion: nil)
    }
}


@IBAction func addToCalendar(sender: UIButton) {

    let eventStore = EKEventStore()
    let startDate = NSDate()
    let endDate = startDate.dateByAddingTimeInterval(60 * 30)

    if (EKEventStore.authorizationStatusForEntityType(.Event) != EKAuthorizationStatus.Authorized) {
        eventStore.requestAccessToEntityType(.Event, completion: {
            granted, error in
            self.createEvent(eventStore, title: "Psychology Lecture", startDate: startDate, endDate: endDate)

        })

    }else {
        createEvent(eventStore, title: "Psychology Lecture", startDate: startDate, endDate: endDate)
    }
}

1 个答案:

答案 0 :(得分:1)

  

我希望能够将该事件添加到特定日期的下一个实例。例如。下一个星期一

您如何处理应用的用户界面?这种情况的最佳选择是显示日期选择器 - 并让用户选择日期。然后,您可以为该特定日期创建一个事件。

  

我希望能够在当天重复播放该事件一定次数 - 比方说4。

这是用于创建重复事件的documentation,并且您似乎无法在特定日期重复出现n次事件。

我建议 - 用不同的时间创建活动或创建一整天的活动。

全日活动

event.allDay = true

为了用不同的时间创建活动 - 我用不同的时间来庆祝这一天

 createEvent(eventStore, title: "Psychology Lecture", startDate: startDate, endDate: endDate)
 //Bump up the time by 30 minutes
 startDate = startDate.dateByAddingTimeInterval(60 * 30)
 endDate = endDate.dateByAddingTimeInterval(60 * 30)
 self.createEvent(eventStore, title: "Another Psychology Lecture", startDate: startDate, endDate: endDate)

这有帮助吗?