2011-11-19 8 views
12

मैं एक्सकोड 4.2 की स्टोरीबोर्ड सुविधा का उपयोग कर आईओएस ऐप डिज़ाइन कर रहा हूं। ऐप में एक लॉगिन स्क्रीन है जो उपयोगकर्ता नाम और पासवर्ड लेती है और इसमें लॉग इन करने के लिए एक बटन होता है। लॉगिन बटन को धक्का देना एक पुश सेक को दूसरे दृश्य नियंत्रक को ट्रिगर करता है। हालांकि, मैं चाहता हूं कि जब तक अगला दृश्य नियंत्रक आगे बढ़ने से पहले लॉगिन वापस सफल न हो जाए तब तक प्रतीक्षा करें।आईओएस: लॉगिन सफलता के लिए segue प्रतीक्षा करें

मुझे prepareForSegue:sender: के बारे में पता है लेकिन मेरी समस्या है: लॉगिन कॉल असीमित है। इसलिए मैं वहां लॉगिन नहीं कर सकता।

क्या इसके आसपास कुछ है? क्या मैं स्टोरीबोर्ड में एक सेक बना सकता हूं जो केवल तभी ट्रिगर होता है जब मैं इसे चाहता हूं (जैसा कि बटन पर क्लिक किया जाता है) के विपरीत?

उत्तर

37

ठीक है, मैंने इसे समझ लिया है। मैंने UIButton से अगले UIViewController पर एक सेग्यू परिभाषित किया था। जैसा कि इस तरीके से परिभाषित किया गया है, सील्यू को सशर्त रूप से निष्पादित करने का कोई तरीका नहीं है।

बटन पर सेग्यू डालने के बजाय, मैंने पहले UIViewController से दूसरे UIViewController पर एक सेगु बना दिया। यह segue को परिभाषित करता है, लेकिन इसके साथ कोई कार्रवाई संबद्ध नहीं है। वहां से मैं बस पर कॉल कर सकता हूं जब मैं चाहता हूं कि सेग्यू निष्पादित करे (मेरे मामले में जब एसिंक कार्य पूरा हो)।

मेरे लिए इसका मुख्य लाभ यह है कि आईबी इसकी संरचना को बनाए रखता है।

मुझे सही दिशा (+1) में इंगित करने के लिए @cli_hlt का बड़ा धन्यवाद।

5

अगर वहाँ आईबी में एक तरह से इस तरह की कार्रवाई (हालांकि मैं दृढ़ता से यह शक है) प्रदर्शन करने के लिए है मैं नहीं जानता तो मैं दृश्य नियंत्रक पर

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender 

उपयोग करने के लिए सुझाव है कि जब आपके अतुल्यकालिक लॉगिन संकेतों सफलता ।

+0

हाँ मैंने देखा कि, मैं बस यह उम्मीद कर रहा था कि ऐसा करने का कोई तरीका होगा जहां मुझे आईबी में प्रवाह तोड़ना नहीं होगा। – mtmurdock

1

आप UIStoryBoard के उदाहरण पर तत्काल ViewControllerWithIdentifier को भी कॉल कर सकते हैं। यह आपके स्टोरीबोर्ड में किसी भी बिंदु पर दृश्य नियंत्रक संदर्भ लौटाएगा। वहां से, आप इसे पेश कर सकते हैं हालांकि आपको पसंद है और यह आपके स्टोरीबोर्ड का प्रवाह उठाएगा।

+0

हालांकि आईबी में दिखाई नहीं देगा। मैं स्टोरीबोर्ड पर फ्लोचार्ट बनाए रखने की कोशिश कर रहा था। आप जो सुझाव दे रहे हैं वह आईबी में दो नियंत्रकों के बीच एक लिंक नहीं दिखाएगा। यदि आप मेरा जवाब पढ़ते हैं तो आप देखेंगे कि मैं अनिवार्य रूप से वही काम करने में सक्षम था जो आप सिग को परिभाषित करने के लिए आईबी का उपयोग करते समय प्रस्तावित कर रहे थे। इनपुट के लिए धन्यवाद! +1 – mtmurdock

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