मेरे पास एक नक्शा दृश्य है जिसे मैं में स्विच के आधार पर annotations
जोड़ रहा हूं और हटा रहा हूं। जब मैं popover
के बाहर स्पर्श करता हूं, तो यह सही ढंग से खारिज कर देता है और delegate
विधि popoverControllerDidDismissPopover:
पर कॉल करता है मेरी समस्या यह है कि जब मैं popover
(पॉपओवर व्यू के भीतर स्पर्श करना) में स्विच टॉगल करता हूं, तो अगर मैं मानचित्र से annotations
हटा रहा हूं सही तरीके से व्यवहार करता है और पॉपओवर दृश्यमान रहता है लेकिन यदि मैं मानचित्र दृश्य में 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
शामिल दो विधियों को जोड़ा, कृपया हमें दिखाएं कि पॉपओवर कैसे स्थापित और प्रदर्शित किया गया है। –