विधि का नाम गलत है। यह एक राजधानी V
साथ mapView
होना चाहिए:
- (MKAnnotationView *)mapView:(MKMapView *)sender
viewForAnnotation:(id <MKAnnotation>)annotation
ऑब्जेक्टिव-सी केस-संवेदी है।
यदि विधि अभी भी कॉल नहीं की जाती है, तो दूसरी समस्या यह है कि मानचित्र दृश्य का delegate
सेट नहीं है। कोड में, इसे self
पर सेट करें या इंटरफ़ेस बिल्डर में प्रतिनिधि को फ़ाइल के स्वामी से संलग्न करें।
यह भी सुनिश्चित करें कि आप इसे जोड़ने से पहले एनोटेशन के title
सेट करें अन्यथा कॉलआउट अभी भी दिखाई नहीं देगा।
उपरोक्त परिवर्तनों को सहायक बटन को प्रदर्शित नहीं करना चाहिए।
कुछ अन्य असंबंधित सुझाव ...
viewForAnnotation
में, आप dequeueReusableAnnotationViewWithIdentifier
फोन करके एनोटेशन दृश्य पुनः उपयोग का समर्थन करना चाहिए:
- (MKAnnotationView *)mapView:(MKMapView *)sender viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString *reuseId = @"StandardPin";
MKPinAnnotationView *aView = (MKPinAnnotationView *)[sender
dequeueReusableAnnotationViewWithIdentifier:reuseId];
if (aView == nil)
{
aView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:reuseId] autorelease];
aView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
aView.canShowCallout = YES;
}
aView.annotation = annotation;
return aView;
}
अपनी परियोजना एआरसी उपयोग करता है, autorelease
को हटा दें।
वैसे, गौण बटन प्रेस करने के लिए प्रतिक्रिया करने के लिए, calloutAccessoryControlTapped
प्रतिनिधि विधि को लागू:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"accessory button tapped for annotation %@", view.annotation);
}
आप दिखा सकते हैं कि तुम क्या करने की कोशिश की और वास्तव में क्या त्रुटियों या समस्याओं आप मिल सकता है? – Anna