의 스위치를 기반으로 annotations
을 추가 및 제거하는지도보기가 있습니다. popover
바깥 쪽을 터치하면 정확하게 닫히고 delegate
메서드를 호출합니다. popoverControllerDidDismissPopover:
내가 가지고있는 문제는 을지도에서 제거하면 popover
(팝업 뷰 내에서 만지기)의 스위치를 토글 할 때 발생합니다. 올바르게 동작하고 popover는 계속 표시되지만 annotations
을 맵보기에 추가하면 popover
이 사라지고 delegate
메서드가 호출되지 않습니다. 누구든지 전에이 행동을 접하게 되었습니까?UIPopoverController는 대리인 호출없이 닫습니다.
스위치의 켜기 코드와 꺼짐 코드의 유일한 차이점은 배열에서 annotations
을 제거하고 다른 하나는 annotations
을 제거한다는 것입니다. 지도보기에 annotations
을 추가하는 경우에만 문제가됩니다. 어떤 도움이나 제안을 주시면 감사하겠습니다. 이것은 팝 오버 뷰에서 호출되는 방법
-(IBAction)toggleMapFiltersView:(id)sender
{
LayerPopoverViewController *popOverViewController = [[LayerPopoverViewController alloc] init];
[popOverViewController setDelegate:self];
[popOverViewController setBranchesShowing:branchesShowing];
[popOverViewController setSchoolsShowing:schoolsShowing];
[layersButton setSelected:YES];
popoverController = [[UIPopoverController alloc] initWithContentViewController:popOverViewController];
[popoverController setDelegate:self];
[popOverViewController release];
[popoverController presentPopoverFromRect:layersButton.frame
inView:[self view]
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
:
이것은 popover
가 표시되는 방법이다
-(IBAction)toggleSchools:(id)sender
{
if ([self.delegate respondsToSelector:@selector(didChangeSchoolsDisplaySettingWithVisible:)])
{
if ([schoolsSwitch isOn])
{
[self.delegate didChangeSchoolsDisplaySettingWithVisible:YES];
self.schoolsShowing = YES;
}
else
{
[self.delegate didChangeSchoolsDisplaySettingWithVisible:NO];
self.schoolsShowing = NO;
}
}
}
하고 이는 참조하는 방법이다 :
-(void)didChangeSchoolsDisplaySettingWithVisible:(BOOL)visible
{
if (visible == YES)
{
schoolsShowing = YES;
if (self.schoolArray != nil && [self.schoolArray count] > 0)
{
for (MySchool *school in self.schoolArray)
{
[mapView addAnnotation:school];
}
}
}
else
{
schoolsShowing = NO;
for (id<MKAnnotation> annotation in mapView.annotations)
{
if ([annotation isKindOfClass:[MySchool class]])
{
[mapView removeAnnotation:annotation];
}
}
}
}
당신이 몇 가지 코드를 게시 할 수있는 도움이 될 희망, 그래서 우리는 무슨 일이 일어나고 있는지 볼 수있다? – xCoder
에 두 가지 방법이 추가되었습니다. – user1359733
popover가 설정되고 표시되는 방법을 알려주십시오. –