2014-05-20 7 views
10

मेरे आईपैड ऐप पर मैं एनोटेशन का उपयोग करके कुछ बिंदुओं को प्रदर्शित करने के लिए आईओएस मानचित्र का उपयोग कर रहा हूं। जब एक एनोटेशन चुना गया है तो मैं कस्टम कॉलआउट भी प्रदर्शित करना चाहता हूं। मैं कॉलआउट दिखाने के लिए यूआईपीओवर कंट्रोलर का उपयोग कर रहा हूं। हालांकि यह केवल तभी काम करता है जब पहली बार एनोटेशन पर टैप करें। अगर मैं एक ही एनोटेशन पर कॉलआउट देखना चाहता हूं, तो मुझे पहले अलग-अलग एनोटेशन का चयन करना होगा और फिर पिछली एनोटेशन पर टैप करना होगा।एमकेमैप व्यू एनोटेशन दूसरी बार चयन नहीं किया जा सकता है

असल में यह प्रतिनिधि विधि दूसरी बार फायरिंग नहीं कर रही है।

-(void)mapView:(MKMapView *)mapView 
    didSelectAnnotationView:(MKAnnotationView *)view 

मैं स्टोरीबोर्ड का उपयोग कर रहा हूं और प्रतिनिधि वहां पर सेट है। इस तरह मैंने एनोटेशन सेट किया है।

[self.mapView addAnnotations:self.placemarksArray] 

क्या कोई मुझे उपर्युक्त मुद्दे के कारण बता सकता है? धन्यवाद

+0

आप didSelectAnnotationView विधि के शीर्ष पर deselectAnnotation कॉल करने की कोशिश की है? – Anna

+0

वाह मैंने नहीं किया है। मैंने परीक्षण किया है और यह काम है। क्या आप इसे एक उत्तर के रूप में जोड़ सकते हैं, फिर मैं जवाब स्वीकार कर सकता हूं। मदद के लिये शुक्रिया। – Chinthaka

उत्तर

24

didSelectAnnotationView प्रतिनिधि विधि के लिए दस्तावेज़ चर्चा अनुभाग में इस का कहना है:

आप बदलता है एनोटेशन विचारों का चयन राज्य में ट्रैक करने के लिए इस विधि का उपयोग कर सकते हैं।

इसका मतलब है कि प्रतिनिधि विधि केवल सक्रिय होता है एनोटेशन देखने के से "चयनित नहीं" स्थिति परिवर्तन "चयनित" के लिए (मैं शब्द "परिवर्तन"। पर बोल्ड और इटैलिक जोड़ा)।


(करने के लिए "चयनित नहीं" जो चयनित एनोटेशन के राज्य में परिवर्तन) एक और एनोटेशन या नक्शे पर दोहन करने के लिए और एक फिर से वही एनोटेशन पर "का चयन करें" का पता लगाने के होने से बचने के लिए, आपको डे मजबूर कर सकते हैं का चयन करें didSelectAnnotationView विधि के शीर्ष पर:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view 
{ 
    [mapView deselectAnnotation:view.annotation animated:YES]; 

    //existing code to handle tap on annotation... 
} 
1

स्विफ्ट 3 संस्करण:

mapView.deselectAnnotation(view.annotation, animated: true) 
संबंधित मुद्दे