2016-09-19 10 views
23

कुछ अजीब कारणों से, स्विफ्ट 3 के साथ, prepare(for segue: विधि सेग्यू पहचानकर्ता को स्वीकार करने से इनकार कर दिया गया है। मैं IBAction के एक जोड़े बटन के से जुड़े निम्नलिखित है यूआई पर:तेजी से 3 तैयार (segue के लिए:) समारोह टूट गया?

@IBAction func goToImagesPicker(_ sender: AnyObject) { 
    performSegue(withIdentifier: "showImagePicker", sender: sender) 

} 

@IBAction func goToNamePicker(_ sender: AnyObject) { 
    performSegue(withIdentifier: "showNamePicker", sender: sender) 
} 

हालांकि मेरी prepare(for segue: विधि में, यह अलग segue पहचानकर्ता का नहीं पहचानता है, मैं इतना पता है कि मेरे कंसोल संदेशों लॉग नहीं है क्योंकि मैं प्रत्येक को सौंपा गया:

func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { 

     if segue.identifier == "showImagePicker" { 

      print("This is the Image Picker") 

     } 

     if segue.identifier == "showNamePicker" { 

      print("This is the Name Picker") 

     } 
} 

कोई सुझाव? या यह सिर्फ एक बग है?

+0

निम्नलिखित कोड के साथ प्रतिस्थापित करें func readyFrSegue (segue: UIStoryboardSegue, प्रेषक: AnyObject?) { प्रिंट ("परीक्षण"); // segue.destinationViewController का उपयोग कर नया दृश्य नियंत्रक प्राप्त करें। // चयनित ऑब्जेक्ट को नए व्यू कंट्रोलर पर पास करें। } –

उत्तर

56

आपकी विधि बिल्कुल कॉल नहीं हो रही है क्योंकि आपके पास गलत हस्ताक्षर है। यह Xcode 8 में करने के लिए बीटा 6 बदला गया था:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

ध्यान दें कि sender के प्रकार Any? बजाय AnyObject? है। आपको एक्सकोड को अपग्रेड करने के बाद एक त्रुटि होनी चाहिए, जिसने आपको बताया था कि आपकी विधि अपने सुपरक्लास से किसी भी विधि को ओवरराइड नहीं कर रही थी, जिसने override को हटाए जाने से पहले आपको चिपकाया था।

+0

यह समाधान प्रतीत होता है लेकिन, मैंने दस्तावेज़ को पूरी तरह से पढ़ा है, मैंने कभी भी प्रेषक ऑब्जेक्ट में वाक्यविन्यास में कोई बदलाव नहीं देखा है ... इसलिए मैंने अनजाने में ओवरराइड को हटा दिया। फिर भी, किसी भी तरह धन्यवाद! आज के रूप में –

+1

, मुझे ओवरराइड के बिना त्रुटि मिलती है लेकिन ओवरराइड नहीं कहा जाता है – quantumpotato

संबंधित मुद्दे