2009-06-13 21 views
6

क्या यह जानने का कोई तरीका है कि कब बर्खास्त करें ModalViewControllerAnimated शुरू किया गया है और जब यह पूरा हो जाता है (जैसे viewWillAppear और viewDidAppear के लिए मुहावरे)? अन्य एनिमेशन के विपरीत, ऐसा लगता है कि ऐसा कोई प्रतिनिधि नहीं है जो आपको बताता है।कैसे खारिज करें पता करेंModalViewControllerAnimated शुरू किया जाता है और यह भी किया जाता है?

उत्तर

10

हां, और आपके विचार से आसान है।

बर्खास्त होने पर मॉड्यूल व्यू कंट्रोलरएनिमेटेड: जिसे अंतर्निहित दृश्य (प्रकट होने वाला एक) कहा जाता है, उसे एक व्यूविल्लर संदेश और एक दृश्यडिडपेयर संदेश प्राप्त होगा।

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

+0

धन्यवाद, मेरा प्रतिनिधि हस्ताक्षर गलत था इसलिए मैंने सोचा कि इसे बर्खास्त होने पर नहीं बुलाया गया था। – Boon

+0

यह प्रतिनिधि हस्ताक्षर कैसा दिखता है? – AlvinfromDiaspar

+4

मेरे पास दोनों देखेंDidAppear और viewDidAppear लागू किया गया। लेकिन जब modalviewcontroll कहा जाता है (आंशिक-curlup शैली के रूप में), इन प्रतिनिधियों को बुलाया नहीं जाता है। कोई विचार? – AlvinfromDiaspar

5

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

1

आप दृश्य उपस्थिति विधियों का उपयोग कर सकते हैं। और अगर आपको एनीमेशन पूर्ण होने के बाद कुछ करने की ज़रूरत है, तो आप [object performSelector:@selector(selector) withObject:anotherObject afterDelay:0] का उपयोग कर सकते हैं। मुझे बिल्कुल नहीं पता क्यों, लेकिन कार्रवाई वर्तमान रन लूप पर निर्धारित की जाएगी, लेकिन एनीमेशन पूर्ण होने के बाद।

+1

आईओएस 5 से शुरू, उपयोग -डिस्मिसव्यू कंट्रोलरएनिएटेड: पूर्णता: और एनीमेशन पूर्ण होने के बाद कुछ भी करने के लिए पूर्णता ब्लॉक का उपयोग करें। –

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