2017-07-19 1 views
0

私はカレンダーから取り出したイベントを編集したい。私の問題は、イベントの詳細を見ることができますが、編集ボタンが表示されないので、ユーザーは編集できません。EventKitで特定のイベントを編集する - Swift

that's what i'm talking about

これは、私はそれが十分に願っていますコード

class ViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource, EKEventEditViewDelegate { 

let eventStore = EKEventStore() 
var hibakURL = [String]() 
var hibasEventek = [EKEvent]() 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
      if segue.identifier == "segue" { 
       // Configure the destination event view controller 
       let eventViewController = segue.destination as! EKEventViewController 
       // Fetch the index path associated with the selected event 
       let indexPath = self.hibaTableView.indexPathForSelectedRow! 
       // Set the view controller to display the selected event 
       eventViewController.event = self.hibasEventek[indexPath.row] 
       print(indexPath.row) 

       // Allow event editing 
       eventViewController.allowsEditing = true 
      } 
    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    { 
     let numofRows = hibakURL.count 
     return numofRows 
    } 

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    { 
     let cell = hibaTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
     cell.textLabel?.text = hibasEventek[indexPath.row].title 

     cell.textLabel?.font = UIFont(name: (cell.textLabel?.font.fontName)!, size:14) 

     return cell 
    } 


     } 

の関連部分です!
申し訳ありませんが、投稿の中の何かがcorectではありませんが、これは私の最初の投稿です。

答えて

0

問題が解決しました。私は、格納されたイベントの代わりにイベントIDを使用して試してみました。

class ViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource, EKEventEditViewDelegate { 

let eventStore = EKEventStore() 
var hibakURL = [String]() 
var hibasEventek = [String]() // <-- To Store eventIdentifier 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
      if segue.identifier == "segue" { 
       // Configure the destination event view controller 
       let eventViewController = segue.destination as! EKEventViewController 
       // Fetch the index path associated with the selected event 
       let indexPath = self.hibaTableView.indexPathForSelectedRow! 
       // Set the view controller to display the selected event 
       eventViewController.event = eventStore.event(withIdentifier: hibasEventek[indexPath.row])! //it fetches now that specific event from the eventStore instead of a copied event 
       print(indexPath.row) 

       // Allow event editing 
       eventViewController.allowsEditing = true 
      } 
    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    { 
     let numofRows = hibakURL.count 
     return numofRows 
    } 

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    { 
     let cell = hibaTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
     cell.textLabel?.text = hibasEventek[indexPath.row].title 

     cell.textLabel?.font = UIFont(name: (cell.textLabel?.font.fontName)!, size:14) 

     return cell 
    } 


     } 

ありがとうございました!素敵な一日を。

関連する問題