前提・実現したいこと
終日フラグをONの状態で、イベント登録画面を表示したい。
発生している問題・エラーメッセージ
EKEvent.isAllDay にtrueを設定しても、終日フラグがOFFの状態でイベント登録画面が表示されます。
swift
1class CustomViewController: MFMailComposeViewControllerDelegate, EKEventEditViewDelegate, UINavigationControllerDelegate { 2 3 private let eventStore: EKEventStore = EKEventStore() 4 5 func openCalendarView(title: String, location: String?, allDayFlag: Bool, startDate: Date?, endDate: Date?, notes: String?, timezone: TimeZone) { 6 7 event.isAllDay = allDayFlag // trueをコーディングしても、 8 event.title = title 9 event.location = location ?? "" 10 if let start = startDate { 11 if allDayFlag { 12 let dateCompStart = Calendar.current.dateComponents([.year, .month, .day], from: start) 13 let dateCompEnd = Calendar.current.dateComponents([.year, .month, .day], from: endDate!) 14 let eventDateStart = Calendar.current.date(from: dateCompStart) 15 let eventDateEnd = Calendar.current.date(from: dateCompEnd) 16 event.startDate = eventDateStart 17 event.endDate = eventDateEnd 18 } else { 19 event.startDate = startDate 20 event.endDate = endDate 21 } 22 } 23 event.notes = notes 24 event.timeZone = timezone 25 event.calendar = self.eventStore.defaultCalendarForNewEvents 26 dump(event) // allDay = 0;となっている。 27 28 let eventController = EKEventEditViewController() 29 eventController.delegate = self 30 eventController.event = event 31 eventController.editViewDelegate = self 32 eventController.eventStore = self.eventStore 33 self.present(eventController, animated: true, completion: nil) 34 }
試したこと
isAllday、startDateの設定順序を変える。
startDate, endDateの設定内容を変える。
補足情報(FW/ツールのバージョンなど)
プロジェクト設定
iOS 11.0
swift 4.0
Info.plist : Privacy - Calendars Usage Description
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。