2013-11-28 6 views
11

का उपयोग करते समय मुझे पता है कि इसके बारे में अन्य कई प्रश्न हैं लेकिन वे मेरी समस्या पूरी तरह से समझ नहीं पाते हैं।चेतावनी: उपस्थिति का प्रयास खिड़की पदानुक्रम में नहीं है! पहचान किए गए सेग्यू

मैं एक पहचान स्टोरीबोर्ड कस्टम segue, जब प्रासंगिक बटन दबाने के माध्यम से एक और SAGHomeScreenViewController करने के लिए अपने प्रारंभिक दृश्य नियंत्रक SAGViewController से जाना:

-(IBAction)goNewGame{ 
    [self performSegueWithIdentifier:@"startHomeSegue" sender:self]; 
} 

यह ठीक काम करता है लेकिन मैं अभी भी चेतावनी मिलती है:

चेतावनी: SAGHomeScreenViewController प्रस्तुत करने का प्रयास: SAGViewController पर 0xc43b800: 0xbaaa9f0 जिसका दृश्य विंडो पदानुक्रम में नहीं है!

अगर मैं performSegueWithIndentifer बाहर टिप्पणी, segue अभी भी काम करता है, लेकिन मैं चेतावनी नहीं मिलता:

क्यों? ध्यान दें कि मेरे पास नेविगेशन नियंत्रक नहीं है।
यहां कोई सलाह की सराहना की जाएगी, सीगू अभी भी काम करता है लेकिन मुझे कोई चेतावनी नहीं चाहिए जो मुझे समझ में नहीं आती!

+0

यदि आप UINavigationController का उपयोग नहीं कर रहे हैं तो आपको मोडल सेग्यू का उपयोग करना चाहिए। Segue काम करता है क्योंकि अगर आप गलत नहीं हैं, तो आपने अपने यूब्यूटन ऑब्जेक्ट से स्टोरीबोर्ड में अगलीव्यू कंट्रोलर से वायर्ड किया है। – suhit

+0

मैं कस्टम सेगू का उपयोग कर रहा हूं क्योंकि मैं गंतव्य दृश्य को दाईं ओर स्लाइड करने के लिए चाहता हूं। अगर मैं एक मोडल सेगू – AndyOS

+0

पर स्विच करता हूं तो मुझे अभी भी चेतावनी मिलती है, आप दृश्य पदानुक्रम में अपना वर्तमान व्यू कंट्रोलर (नियंत्रक जहां आप कॉल करते हैं) को कैसे जोड़ते हैं? – Greg

उत्तर

8

आपको उस विधि को हटा देना चाहिए और आपको अपने स्टोरीबोर्ड में दूसरे दृश्य नियंत्रक से कनेक्शन बनाना चाहिए।

// बढ़ाया

आप prepareForSegue का उपयोग आप अपने गंतव्य को देखने के लिए कुछ पास करना चाहते हैं: इस विधि। इस विधि हर बार जब आप segue के माध्यम से दृश्य बदलने के कहा जाता है:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"YOURSEGUEIDENTIFIER"]) 
    { 
     YourViewController *yourVC = [segue destinationViewController]; 
    } 
} 

// बढ़ाया

इसका कारण यह है आप दो तरह से एक कोड में है और एक अन्य स्टोरीबोर्ड में है, वहां अपने segue से जोड़ लिया हो रहा है। आपको उनमें से एक को हटाना होगा। आप अपने कोड से अपने आईबीएक्शन को हटा सकते हैं (इसलिए आपके पास स्टोरीबोर्ड में सिर्फ कनेक्शन होगा) या आप स्टोरीबोर्ड में अपने कनेक्शन को हटा सकते हैं (अपने बटन से गंतव्य व्यू कंट्रोलर तक) और इसे फिर से जोड़ें लेकिन इस बार इसे अपने स्रोत व्यू कंट्रोलर से खींचें (बटन नहीं) अपने गंतव्य दृश्य नियंत्रक के लिए। Segue पहचानकर्ता सेट अप मत भूलना। यदि आप स्टोरीबोर्ड का उपयोग करते हैं तो मैं आपको कोड से अपना आईबीएक्शन हटाने के लिए सलाह दूंगा, प्रबंधन के लिए कम कोड। इस सहायता की आशा करें।

+1

के साथ प्रदर्शन सेगुए विथ इंडेंटिफ़ायर का उपयोग करता हूं तो आपके समय के लिए धन्यवाद। क्या होगा यदि मुझे performSegueWithIdentifier विधि का उपयोग करने की आवश्यकता है, उदाहरण के लिए गंतव्य दृश्य में कुछ पास करने के लिए? मुझे पता है कि जानकारी पास करने के अन्य तरीके हैं, लेकिन क्यों प्रदर्शन करते हैं SegueWithIdentifier चेतावनी का कारण बनता है? – AndyOS

+0

उपरोक्त संपादित पोस्ट देखें। – Greg

+0

मैंने फिर से तैयार किया है, फिर भी चेतावनी प्राप्त कर रहा हूं अगर मैं performSegueWIthIdentifier – AndyOS

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

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