2012-03-12 79 views
0

是否有可能在EKCalendarChooser中顯示啓用添加新日曆,就像默認iPhone日曆應用在左上角顯示+並允許您定義日曆一樣?EKCalendarChooser新日曆

回答

1

我一直在尋找了將近一天,到目前爲止,還沒有運氣一樣隨時可以使用的解決方案..

是好事,但是,你可以調用

[yourEKCalendarChooserInstance setEditing:YES]; 

它會告訴你「添加日曆」行

但不好的一點是沒有任何事情發生在點擊/選擇。 這就是我發現了迄今爲止

UPDATE:

此代碼爲我工作(僅在仿真測試至今):

EKEventStore *store = [[[EKEventStore alloc] init] autorelease]; 
EKCalendarChooser *chooser = [[EKCalendarChooser alloc] initWithStyle:EKCalendarChooserSelectionStyleSingle displayStyle:EKCalendarChooserDisplayWritableCalendarsOnly eventStore:store]; 
[chooser setEditing:YES]; 
[chooser setShowsDoneButton:YES]; 
[chooser setShowsCancelButton:YES]; 
UINavigationController *modalController = [[UINavigationController alloc] initWithRootViewController:chooser]; 
[self presentViewController:modalController animated:YES completion:nil]; 

此外,當然,您需要提供委託完成/取消按鈕。

+0

我不同意這封郵件被標記爲答案。它不提供解決方案。事實上,當EKCalendarChooser處於編輯模式時,「完成」和「取消」按鈕甚至不會出現。唯一可以實現的方法是加載兩個EKCalendarChooser實例,一個用於編輯,另一個用於選擇 – pechar 2013-11-27 15:27:55

2

大量的試驗和錯誤, 後,我終於明白了:

var calendarChooser: EKCalendarChooser! 
var navController: UINavigationController! 

func setup() { 
    calendarChooser = EKCalendarChooser(
     selectionStyle: EKCalendarChooserSelectionStyleMultiple, 
     displayStyle: EKCalendarChooserDisplayAllCalendars, 
     entityType: EKEntityTypeEvent, 
     eventStore: zeitplanController.cache.eventStore) 
    // DON'T DO THE FOLLOWING: 
    // calendarChooser.editing = false 
    navController = UINavigationController(rootViewController: calendarChooser) 
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: "startEditing") 
} 

func startEdit() { 
    calendarChooser.editing = true 
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "endEdit") } 

func endEdit() { 
    calendarChooser.editing = false 
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: "startEdit") 
} 

這,放於UIPopoverController顯示標準日曆選擇對話框包括編輯功能,如在原來的日曆應用程序。

@Apple:請幫助我們並更新文檔,讓我們的生活更輕鬆

+0

奇怪。正在調用EKCalendarChooserDelegate方法,但selectedCalendars爲空。看起來你試圖在設置這些按鈕時重複文檔所說的委託方法已經做了什麼。我錯過了什麼嗎? – 2017-10-14 14:48:17