क्या किसी को पता है कि Xcode 4.5 का उपयोग करते हुए स्टोरीबोर्ड को संपादित करते समय नया Exit आइकन क्या उपयोग किया जाता है?


100

एक्ज़िट आइकन पर राइट-क्लिक करने से एक खाली विंडो मिलती है। किसी भी आईबी तत्व या संबंधित स्रोत फ़ाइलों के लिए Ctrl-drag नहीं कर सकता। डॉक्स कोई प्यार नहीं देता। Nib फ़ाइलों में प्रकट नहीं होता है, केवल स्टोरीबोर्ड। मेरी धारणा है कि यह बहस करने के लिए एक कोरोलरी है, लेकिन मैं इसे वापस करने के लिए कोई नया तरीका नहीं देखता। किसी को?



जवाबों:


104

WWDC वीडियो "सत्र 407 - अपने ऐप में स्टोरीबोर्ड को अपनाना" में बहुत सारी जानकारी है।

कहते हैं कि आपके पास दो दृश्य नियंत्रक हैं जो एक सेग से जुड़े हैं। पहले दृश्य नियंत्रक पर निम्नलिखित निकास क्रिया को लागू करें:

- (IBAction)done:(UIStoryboardSegue *)segue {
    NSLog(@"Popping back to this view controller!");
    // reset UI elements etc here
}

फिर, दूसरे दृश्य नियंत्रक के लिए स्टोरीबोर्ड दृश्य पर, एक यूआई तत्व से Ctrl-drag, जैसे कि एक बटन, इस दृश्य नियंत्रक के नीचे से बाहर निकलें आइकन पर। done:पहले नियंत्रक के कोड में आपके द्वारा जोड़ी गई कार्रवाई एक विकल्प के रूप में दिखाई देगी। अब, आप जिस बटन को Ctrl-घसीट कर एक्ज़िट आइकन पर ले जाते हैं, उसे पहले दृश्य नियंत्रक पर वापस भेज दिया जाएगा और इसकी मूल स्थिति (यानी यूआई तत्व जैसे टेक्स्ट इनपुट अभी भी बरकरार है) को बनाए रखेगा।


3
यह वास्तव में दृश्य नियंत्रक (और इसके विचारों) के सटीक उसी उदाहरण पर वापस जाता है।
जॉन हेस

धन्यवाद, मैं यह जानने के लिए पढ़ रहा था कि "ग्रीन एग्जिट" क्या था, केवल यह पता लगाने के लिए कि यह मेरे लिए एक समस्या है। मेरे पास 2 व्यू कंट्रोलर एक TabBar कंट्रोलर और एक नेविगेशन कंट्रोलर द्वारा अलग किए गए थे, और "पॉप" पीछे की ओर लौटने के लिए काम नहीं करता था। यह 2 मिनट का समय लगा और जैसा कि आपने कहा था कि सब कुछ काम कर रहा है! धन्यवाद!
user589642

मैं DoneA देखने के लिए वापस बाहर निकलने से पहले B की कक्षा में बटन पर एक्शन विधि कैसे लागू कर सकता हूं ?
विशेषज्ञ

यदि आप WWDC का वीडियो देखते हैं, तो आप 37:15 पर "
सुनसान

220

मेरे पास स्वीकृत उत्तर के बाद एक कठिन समय था इसलिए यहां अधिक विवरण है।

व्यू कंट्रोलर सी पर नीचे दिए गए फोटो को देखते हुए आप किसी भी व्यू कंट्रोलर से "एक्जिट" कर सकते हैं।

यहां छवि विवरण दर्ज करें

ViewController A आप लिख सकते हैं:

- (IBAction)done:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController B आप लिख सकते हैं:

- (IBAction)back:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController C आप " एग्जिट " बटन से ग्रीन एग्जिट ऑप्शन तक ड्रैग को कंट्रोल करते हैं और बैक को सेलेक्ट करते हैं: ViewController C को आप " एग्जिट " बटन से ग्रीन एग्जिट ऑप्शन पर ड्रैग से कंट्रोल करते हैं और सेलेक्ट करते हैं : यहां छवि विवरण दर्ज करें

नोट: भले ही विधियाँ अन्य दृश्य नियंत्रकों पर हों, वे ViewController C के निकास के लिए दिखाई देते हैं। नियंत्रण को खींचना और एक विधि का चयन करना परिभाषित करता है जो ViewController को खोलना है।


2
एक और ध्यान दें: कभी-कभी हरे निकास बटन सक्रिय नहीं होते हैं यहां तक ​​कि सभी चरण भी किए जाते हैं। इस मामले में स्टोरीबोर्ड (या एक्सकोड प्रोजेक्ट) को फिर से खोलना उम्मीद के मुताबिक काम करता है।
ज़ंकट

3
मेरे पास एक और मुद्दा यह था कि मैंने अपने .h फ़ाइल या क्लास एक्सटेंशन में अपने लेग सेग विधि हस्ताक्षर नहीं किए थे। मैं इसे जोड़ने के बाद खोलना लीग पॉपअप में दिखाया गया है।
स्टीव मोजर 15

2
+ इन्फिनिटी के लिएEven though the methods are on other view controllers they show up for the ViewController C's exit.
सांता क्लॉस

15

एरिक जवाब के अलावा यहां बताया गया है कि यह कैसे काम करता है:

गंतव्य नियंत्रक से आपके द्वारा जोड़ा गया कार्य ऐसा दिखता है:

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.