2012-02-26 45 views
3

我試圖使用EKCalendarChooser來獲取用戶選擇的多個日曆。這是我目前認爲:EKCalendarChooser多選不起作用

EKCalendarChooser* dvc= [[[EKCalendarChooser alloc] initWithSelectionStyle:EKCalendarChooserSelectionStyleMultiple displayStyle:EKCalendarChooserDisplayAllCalendars eventStore:eventStore] autorelease]; 

dvc.selectedCalendars= self.selectedCalendars; 
dvc.delegate= self; 
dvc.contentSizeForViewInPopover= CGSizeMake(320.0, 480.0); 

self.popOver= [[UIPopoverController alloc] initWithContentViewController:dvc]; 
[self.popOver release]; 
self.popOver.delegate= self; 

UIBarButtonItem* item= sender; 

[self.popOver presentPopoverFromBarButtonItem:item permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

我得到的消息calendarChooserSelectionDidChange一次我選擇一個或多個日曆,但每次EKCalendarChooser的selectedCalendars屬性爲空!

- (void)calendarChooserSelectionDidChange:(EKCalendarChooser *)calendarChooser 
{ 
    NSLog(@"selected %d calendars", calendarChooser.selectedCalendars.count); 
} 

2012-02-26 12:50:39.137 MyApp[8604:707] selected 0 calendars 
2012-02-26 12:50:42.100 MyApp[8604:707] selected 0 calendars 

當我使用EKCalendarChooserSelectionStyleSingle代替EKCalendarChooserSelectionStyleMultiple,一切工作正常,我會得到通過selectedCalendars屬性的正確選擇日曆。

我做錯了什麼,或者這是一個錯誤EKCalendarChooser

回答

4

如果您的self.selectedCalendars爲零,您必須用有效但空的集合初始化dvc.selectedCalendars

dvc.selectedCalendars = [[NSSet alloc] init]; 
+0

您確定嗎?我不必在單選模式下執行此操作。儘管在家時會嘗試。 – user826955 2012-08-20 12:23:58

+0

我這樣做了,但確實有幫助。我之前沒有初始化NSSet變量。無論哪種方式,使用多選功能仍然不適合我。我在他們被選中的實例上輸出選定的日曆,但是當它被選中時,null null null 0 0 0無處不在,我正在做很多檢查來查看他們的數據在哪裏,但沒有引用它。我覺得蘋果只是忘了實現EKCalendarChooserSelectionStyleMultiple類型或其他東西。因爲它顯然沒有返回任何點擊單元格。 – jsetting32 2013-04-30 20:20:46

+0

2015,仍然需要分配init'selectedCalendars'爲了多選擇風格正常工作。 – Alex 2015-12-03 08:29:09