2017-10-16 14 views
0

私は、EKCalendarChooserで新しいデフォルトのカレンダーを選択できるようにしたいと思います。 これまでのところ、これは私が働くかもしれないと思ったものですが、そうではありません。完了したら、デフォルトのカレンダーを設定するにはどうしたらいいですか?

func calendarChooserDidFinish(_ calendarChooser: EKCalendarChooser) { 
    print("Done was pressed") 
    // Set to default calendar 
    eventStore.defaultCalendarForNewReminders() 
    for source in eventStore.sources { 
     if source.sourceType == .local { 
      calendar.source = source 
      break 
     } 
    } 
    dismiss(animated: true, completion: nil) 
} 

EKCalendarChooserで新しいデフォルトカレンダーを設定するにはどうすればよいですか?

答えて

0
//get your calendar if it was previously created 
    let calendars = eventStore.calendars(for: .event) 
    for c in calendars 
    { 
     if c.title == "calendarName" 
     { 
      calendar = c 
     } 
    } 

//create it if it was not created previously 
    if calendar == nil 
    { 
     let calendar = EKCalendar(for: .event, eventStore: eventStore) 
     calendar.title = "calendarName" 
     if eventStore.sources.count == 0 
     { 
      calendar.source = EKSource() 
     } 
     else 
     { 
      self.setStoreForCalendar(calendar: calendar, store: eventStore) 
     } 
     do 
     { 
      try eventStore.saveCalendar(calendar, commit: true) 
     } 
     catch let err as NSError 
     { 
      print ("error \(err.description)") 
     } 
    } 

//set defaultCalendar 
    func setStoreForCalendar(calendar:EKCalendar, store:EKEventStore) 
    { 
     var mSource:EKSource? 
     for source in store.sources 
     { 
      if source.sourceType == .calDAV && source.title == "iCloud" 
      { 
       mSource = source 
      } 
     } 

     if mSource == nil 
     { 
      // saving on the local calendar 
      mSource = store.defaultCalendarForNewEvents?.source 
     } 
    } 
関連する問題