4

我试图用来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消息,但每次 selectedCalendars 的属性EKCalendarChooser都是空的!

- (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

1 回答 1

6

如果你self.selectedCalendars是 nil,你必须dvc.selectedCalendars用一个有效但为空的集合来初始化。

dvc.selectedCalendars = [[NSSet alloc] init];
于 2012-08-15T18:46:13.170 回答