Я ищу, как изменить дату моего события в приложении календаря iOS. Мне удалось добавить событие, но дата всегда является датой дня. Я ищу, как программно указать точную дату (например: 10 мая 2019 года в 20:00).
Вот код, который я добавил, чтобы добавить событие в календарь.
import UIKit
import EventKit
class CalendarViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// To add event to iOS Calendar app
@IBAction func addToCalendar(_ sender: Any) {
let eventStore:EKEventStore = EKEventStore()
eventStore.requestAccess(to: .event) { (granted, error) in
if (granted) && (error == nil)
{
print("granted \(granted)")
print("error \(error)")
let event:EKEvent = EKEvent(eventStore: eventStore)
event.title = "Concours de coinchée"
event.startDate = Date()
event.endDate = Date()
event.notes = "Cantine scolaire de Goupillières"
event.calendar = eventStore.defaultCalendarForNewEvents
do {
try eventStore.save(event, span: .thisEvent)
} catch let error as NSError {
print("error : \(error)")
}
print("Save Event")
} else {
print("error : \(error)")
}
}
}
}
Попробуйте это для изменения даты:
var dateComponents = DateComponents()
dateComponents.year = 2020
dateComponents.month = 1
dateComponents.day = 1
dateComponents.hour = 10
dateComponents.minute = 30
let startDate = Calendar.current.date(from: dateComponents)
dateComponents.hour = 11
let endDate = Calendar.current.date(from: dateComponents)
let event: EKEvent = EKEvent(eventStore: eventStore)
event.title = "Concours de coinchée"
event.startDate = startDate
event.endDate = endDate
event.notes = "Cantine scolaire de Goupillières"
event.calendar = eventStore.defaultCalendarForNewEvents
Отлично, я рад, что смог помочь! Примете ли вы ответ, чтобы другие люди могли с первого взгляда увидеть, как он работает?
Да, это сделано! Вы знаете, как добавить час окончания для события, пожалуйста? Если знаешь конечно... :p
Извините, это заняло некоторое время, вы просто делаете то же, что и для startDate
, но с другим временем, а затем добавляете это к событию как endDate
Я обновил свой ответ, чтобы он включал, как изменить дату окончания.
Хорошо танки вы! Просто указать продолжительность мероприятия?
Здорово! Оно работает! Спасибо большое за вашу помощь! Вы забыли строчку "event.endDate=eventDate" что вызвало ошибку и не смог добавить событие, но без последствий. Большое спасибо!