2017-05-25 9 views
0

Je veux récupérer les données/événements de la date actuelle dans mon tableView, je pense que je dois utiliser EventKit pour cela, mais je ne sais pas comment.Comment puis-je récupérer l'événement d'agenda uniquement du jour en cours?

C'est ce que j'ai essayé, mais ne marche pas semblent fonctionner: il ne montre que les sections, mais pas l'étiquette pour les événements

class ViewController: UIViewController,UITableViewDelegate{ 

@IBOutlet weak var taskShow: UITableView! 
var titles : [String] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let eventStore = EKEventStore() 

    switch EKEventStore.authorizationStatus(for: .event) { 
    case .authorized: 
     readEvents() 
    case .denied: 
     print("Access denied") 
    case .notDetermined: 

     eventStore.requestAccess(to: .event, completion: { (granted: Bool, NSError) -> Void in 
      if granted { 
       self.readEvents() 

      }else{ 
       print("Access denied") 
      } 



     }) 
    default: 
     print("Case Default") 
    } 
    self.taskShow.reloadData() 
} 

func readEvents() { 


    let eventStore = EKEventStore() 
    let calendars = eventStore.calendars(for: .event) 

    for calendar in calendars { 
     if calendar.source.title == "Work" { 
      let oneMonthAgo = NSDate(timeIntervalSinceNow: -30*24*3600) 
      let oneMonthAfter = NSDate(timeIntervalSinceNow: +30*24*3600) 


      let predicate = eventStore.predicateForEvents(withStart: oneMonthAgo as Date, end: oneMonthAfter as Date, calendars: [calendar]) 

      var events = eventStore.events(matching: predicate) 

      for event in events { 

       titles.append(event.title) 
    }}}} 


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return titles.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath) 


    cell.textLabel!.text = titles[indexPath.row] 
    // Configure the cell... 

    return cell 
} 
+0

Cocher cette https://stackoverflow.com/questions/6077613/fetch-all-events-from-eventstore-eventkit-ios il vous aidera à – Bala

+0

Je pense que vous obtenez des événements, mais u dois recharger table readEvents() .... peut-être que ça va marcher. –

+0

@PradeepKashyap non son ne fonctionne pas. –

Répondre

0

Vous pouvez utiliser EventKit pour la lecture event.Apple civile a documenté l'utilisation de EventKit . s'il vous plaît se référer ci-dessous lien Apple pour les détails. https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/EventKitProgGuide/ReadingAndWritingEvents.html

+0

Je dois utiliser Swift 3 –

+0

pour swift s'il vous plaît consulter ce tutoriel lien https://www.andrewcbancroft.com/2016/04/28/listing-calendar-events-with-event-kit-and-swift/ –