2012-02-26 3 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이 0이면 유효하지만 빈 세트로 dvc.selectedCalendars을 초기화해야합니다.

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

이 문제가 확실합니까? 단일 선택 모드에서는이 작업을 수행 할 필요가 없습니다. 집에서 그러나 시도 할 것이다. – user826955

+0

나는 이것을했지만 도움이되었다. 이전 NSSet 변수를 초기화하지 않았습니다. 어느 쪽이든, 다중 선택 기능을 사용하여 여전히 나를 위해 작동하지 않습니다. 선택한 캘린더를 선택한 인스턴스에서 출력하지만, 선택하면 null null null 0 0 0이 모든 곳에서 튀어 나오고, 데이터가 어디에 있는지 알기 위해 많은 체크를하고 있지만 아무 것도 참조되지 않습니다. 나는 사과가 EKCalendarChooserSelectionStyleMultiple 타입 또는 무엇인가를 구현하는 것을 잊어 버린 것처럼 느낍니다. 클릭 된 셀이 명확하게 반환되지 않기 때문입니다. – jsetting32

+0

2015, 다중 선택 스타일이 제대로 작동하려면 여전히'selectedCalendars'를 init에 할당해야합니다. – Alex