我有一个地图视图,我annotations根据一个开关添加和删除popovercontroller.当我在外面触摸时popover,它正确地解散并调用delegate方法popoverControllerDidDismissPopover: 我遇到的问题是当我切换popover(在弹出视图中触摸)中的开关时,如果我annotations从地图中移除它的行为正确并且弹出保持可见但如果我将其添加annotations到地图视图,则popover消失并且delegate不调用该方法.有没有人遇到过这种行为?
交换机的on和off代码之间的唯一区别是,一个annotations从数组中删除,而另一个添加annotations.添加annotations到地图视图时,这只是一个问题.任何帮助或建议将不胜感激.
这popover是显示的方式:
-(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];
}
Run Code Online (Sandbox Code Playgroud)
这是从popover视图调用的方法:
-(IBAction)toggleSchools:(id)sender
{
if ([self.delegate respondsToSelector:@selector(didChangeSchoolsDisplaySettingWithVisible:)])
{
if ([schoolsSwitch isOn])
{
[self.delegate didChangeSchoolsDisplaySettingWithVisible:YES];
self.schoolsShowing = YES;
} …Run Code Online (Sandbox Code Playgroud)