2012-11-06 30 views
6

मैंने एक साल पहले एक्सकोड के पुराने संस्करण पर कई आईओएस एप्लिकेशन लिखे हैं। मैंने अभी एक नई परियोजना शुरू की है और नवीनतम एक्सकोड में स्टोरीबोर्ड सुविधा की खोज की है। यह पता चला है कि यह उस एप्लिकेशन के लिए सही है जिसे मैं लिख रहा हूं क्योंकि इसमें ~ 30 इंटरलिंक्ड स्क्रीन शामिल हैं।मॉडल स्टोरीबोर्ड अनंत लूप से कैसे बचें

मेरा सवाल यह है कि, मैं अपने स्क्रीनबोर्ड के माध्यम से एक परिपत्र पथ का पालन करने की अनुमति देने के लिए अपने स्टोरीबोर्ड और सीगू कैसे बना सकता हूं। मैंने examples की संख्या देखी है जो स्क्रीन 2 पर स्क्रीन 1 को सीगू करता है और फिर मोडल विकल्प का उपयोग करके स्क्रीन 2 पर स्क्रीन 2 दबाता है। यह स्पष्ट रूप से काम करता है लेकिन जब मैं इस तरह से बनाए गए एप्लिकेशन को डीबग करता हूं, तो यह प्रत्येक सीगू के लिए प्रत्येक स्क्रीन (नियंत्रक देखें) का एक नया उदाहरण तत्काल करता है। नीचे दिए गए आरेख में (क्षमा करें, मैंने एक अच्छी तस्वीर खींची लेकिन मेरी नौसिखिया स्थिति के कारण, इसे पोस्ट करने में सक्षम नहीं था), मैं स्क्रीन 1 से स्क्रीन 2 तक स्क्रीन 3 पर कैसे जा सकता हूं और मूल स्क्रीन पर वापस नया बनाये बिना 1 उदाहरण?

// Screen 1 --> Screen 2 --> Screen3 
// ^      | 
//  |       | 
//  +-------------------------+ 

उत्तर

3

ठीक है, मैंने इस प्रश्न को प्रस्तुत करने के बाद से काफी शोध किया है और मेरा मानना ​​है कि मैं इस सवाल का उचित उत्तर दे सकता हूं। संक्षेप में, जिस प्रश्न का मैं प्रस्ताव में प्रस्ताव पेश कर रहा था वह इस बात से संगत नहीं है कि स्टोरीबोर्ड और सीग्स वास्तव में काम करते हैं। Segues हमेशा दृश्य नियंत्रक का एक नया उदाहरण तत्काल करें/देखें कि यह लक्षित है। इसका मतलब यह है कि जब हम स्क्रीन 3 से स्क्रीन 1 पर जाते हैं, तो हम स्क्रीन 1 का एक नया उदाहरण नहीं जा रहे हैं, मूल नहीं। इसे हल करने के लिए, मैं स्टोरीबोर्ड को थोड़ा अलग तरीके से कार्यान्वित करूंगा।

// Screen 1 --> Screen 2 
//  | 
//  +------> Screen 3 

मैं तो confiure स्क्रीन 1 स्क्रीन 1 पर उपयोगकर्ता स्क्रीन 2 के लिए बटन का चयन करता है स्क्रीन 2 और 3

से (प्रतिनिधि/प्रोटोकॉल के माध्यम से) एक 'अगले स्क्रीन' संदेश के लिए सुनने के लिए होगा , स्टोरीबोर्ड और सेग्यू स्क्रीन 2 के मोडल इंस्टेंटेशन को संभालेगा। जब स्क्रीन 2 पर उपयोगकर्ता स्क्रीन 3 पर segueing के बजाय 'अगली स्क्रीन' बटन का चयन करता है, तो मैं स्क्रीन 2 को खारिज कर दूंगा और स्क्रीन 1 लॉन्च स्क्रीन 3 को नया स्क्रीन 1 -> स्क्रीन 3 segue।

इस दृष्टिकोण में लूप में आने वाली सभी स्क्रीनों के लिए स्क्रीन 1 को मुख्य नियंत्रक होने की अनुमति देने का लाभ है (मेरे उदाहरण में मेरे पास लूप में 10 स्क्रीन/व्यायाम हैं)। एकमात्र नुकसान यह है कि स्टोरीबोर्ड स्क्रीन के प्रवाह को अच्छी तरह से प्रतिबिंबित नहीं करता है।

मुझे आशा है कि दूसरों को उनकी आईओएस परियोजनाओं में एक ही चीज़ हासिल करने में मदद मिलेगी।

-1

मुझे स्थिति का अच्छा समाधान मिला - स्रोत स्रोत दृश्य नियंत्रक के लिए नया कस्टम segue बनाने के लिए। वह कैसे है इसे बनाने के लिए आप लिंक देख सकते हैं http://jeffreysambells.com/2014/02/19/dismissing-a-modal-view-using-a-storyboard-segue मुझे आशा है कि दूसरों की मदद करें =)