2017-02-22 50 views
0

我們有一個iPhone應用程序,可以讓人們配置事件。人們可以選擇事件的日期,但不能選擇小時。爲此,我們已將它連接到iCalendar。目前,當我們在活動頁面上時,我們只需按下iCalendar圖標並自動iCalendar在日曆的同一日期打開...我們必須選擇小時+將事件的名稱。所以我們重複(放兩次)事件的名字......一個在我們的應用程序中,另一個在Icalendar中。如何從iOS中將參數傳遞給iCalendar Swift

我可以讓iCalendar以這種方式進行組合,這樣當一個人按下Icalendar按鈕時......它會在給定的日期打開我的日曆..然後當我選擇小時時......名稱事件也被放置?

什麼是配置該讓我們沒有把事件信息兩倍的最佳途徑。謝謝fopr讓我知道。

+1

EventKit會讓從來沒有離開你的應用程序建立在蘋果的日曆事件。 –

+0

@DavidShaw謝謝,但Eventkit不允許在添加事件後進行更改 –

回答

0

首先需要導入EventKitUI,如:

進口EventKitUI

並添加委託:EKEventEditViewDelegate

並添加以下代碼來打開新的事件屏幕,傳遞的數據爲:

let eventStore = EKEventStore() 
    eventStore.requestAccess(to: .event, completion: {(_ granted: Bool, _ error: Error?) -> Void in 
     if granted { 
      let event = EKEvent(eventStore: eventStore) 
      event.title = "My Event Test 1" 
      //event.location = location; 
      event.startDate = Date() 
      event.endDate = event.startDate.addingTimeInterval(60 * 30) 
      //event.notes  = notes; 
      let controller = EKEventEditViewController() 
      controller.eventStore = eventStore 
      controller.event = event 
      controller.editViewDelegate = self 
      self.present(controller, animated: true, completion: { _ in }) 
     } 
    }) 

並根據用戶動作作爲響應處理

func eventEditViewController(_ controller: EKEventEditViewController, didCompleteWith action: EKEventEditViewAction) { 
switch (action) { 
case .canceled: 
    // User tapped "cancel" 
    break; 
case .saved: 
    // User tapped "save" 
    break; 
case .deleted: 
    // User tapped "delete" 
    break; 
} 
self.dismiss(animated: true, completion: nil) 
} 
相關問題