2012-08-25 12 views
5

बटन दबाए जाने पर मुझे एक नया सीगू धक्का देना पड़ता है। लेकिन मेरे पास एक क्रिया भी जुड़ी हुई है जिसे सेगू धक्का देने से पहले ट्रिगर किया जाना चाहिए।अलग बटन कार्रवाई और सीगू एक्शन

क्या आप मुझे बता सकते हैं कि उन्हें एक-दूसरे से कैसे अलग किया जाए? किसी भी सहायता की सराहना की जाएगी।

उत्तर

13

बटन को कनेक्ट करने के बजाय सीधे एक दृश्य नियंत्रक से सीगू बनाएं। इसे एक सार्थक नाम दें।

फिर, अपने बटन की एक्शन विधि में, जो कुछ भी आपको पहले करना है, उसे निष्पादित करें, फिर अपने व्यू कंट्रोलर की performSegueWithIdentifier: विधि का उपयोग करके सीगू करें, जिसका अर्थ आपने पहले चुना था।

आपकी टिप्पणियों से, ऐसा लगता है कि आप अपने कतार से दिखाई देने वाले दृश्य नियंत्रक पर गुण सेट करने का प्रयास कर रहे हैं। यदि ऐसा है, तो आपको prepareForSegue: लागू करना चाहिए, और दृश्य नियंत्रक को पॉइंटर प्राप्त करने के लिए segue.destinationViewController का उपयोग करना चाहिए।

+0

सहायता के लिए धन्यवाद। मैंने जो कहा है उसे करने की कोशिश की, लेकिन फिर भी दृश्य पहले धक्का दिया गया है और कार्रवाई के बाद किया जाता है। यहाँ कोडिंग मैं उपयोग कर रहा हूँ है - 'code' - (IBAction) searchButtonPressed: (आईडी) इस { ViewController * ViewController = [[ViewController alloc] initWithNibName: @" ViewController "बंडल: शून्य]; viewController.query = [NSString stringWithFormat: @ "% @", search.text]; [स्वयं प्रदर्शन SegueWithIdentifier: @ "खोज" प्रेषक: स्वयं]; [व्यू कंट्रोलर रिलीज]; } 'कोड' –

+0

अच्छा, यह काम नहीं करेगा! जब segue निष्पादित किया जाता है, तो ओएस आपके लिए एक नया दृश्य नियंत्रक बनाता है, इसलिए आपके द्वारा किए गए कोड में कुछ भी नहीं है। ऐसा लगता है कि आपको उन गुणों को 'readyForSegue:' में सेट करना चाहिए। – jrturton

+0

मैंने आपके द्वारा बताए गए दोनों समाधानों को लागू किया। चीजें थोड़ा ठीक लगती हैं, लेकिन अब ऐप क्रैश हो रहा है। मैंने इसे जोड़ने की कोशिश की - - (आईबीएक्शन) खोज बटन: (आईडी) प्रेषक { [स्वयं प्रदर्शन सेगुइथइडिएंटिफायर: @ "खोज" प्रेषक: प्रेषक]; } - (शून्य) prepareForSegue: (UIStoryboardSegue *) segue इस: (आईडी) इस { अगर ([isEqualToString segue.identifier: @ "खोज"]) { ViewController * ViewController = [segue destinationViewController]; viewController.query = [NSString stringWithFormat: @ "% @", search.text]; [व्यू कंट्रोलर रिलीज]; } } –