2011-07-28 19 views
5

वापस जाने पर viewWillAppear को कॉल नहीं करता है जब भी मैं मैन्युअल रूप से दृश्य नियंत्रक पॉप करता हूं, viewWillAppear पिछले UIViewController पर अब कॉल नहीं होता है जो अब दिखाई देता है।पॉपिंग व्यू कंट्रोलर

ये 2 नियमित UIViewControllers हैं। मेरा आवेदन सेटअप इस तरह है:

- UINavigationController 
    - UITabViewController with 5 UIViewControllers including UIViewControllerA 
     -UIViewControllerA (When I get back here, viewWillAppear doesnt get called) 
     -UIViewControllerB (I'm here, I want to pop to A) 

मैं कोशिश की मैन्युअल viewWillAppear बुला लिया है, लेकिन है कि या तो मदद नहीं करता है। क्या गलत हो सकता है? मेरा आखिरी उपाय बी, और ए पॉपिंग कर रहा है, और फिर एक नया ए बना रहा है, और उसे धक्का दे रहा है, लेकिन यह केवल अंतिम उपाय के रूप में है (मुझे लगता है कि यह काम करेगा?)

+0

यदि यह एक मॉडल है तो व्यूविल्लियर को कॉल नहीं किया जाएगा। इस तरह वास्तुकला है। आपको मॉडल में एक प्रतिनिधि बनाना होगा और इसे पेरेंट व्यू कंट्रोलर में कार्यान्वित करना होगा। तो जब मॉडल व्यू कंट्रोलर में कुछ होता है तो आप पैरेंट व्यू कंट्रोलर में वापस जा सकते हैं। –

उत्तर

1

इसे कॉल नहीं किया जाएगा क्योंकि दृश्य है नेविगेशन नियंत्रक के अंदर है, लेकिन मैं एक समाधान मिला:

http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/

आशा है कि मदद करता है।

+0

क्या यह पहले UIViewController को एनआईएल में सेट करना संभव है, जबकि यह स्टैक में है, और फिर जब मैं वर्तमान UIViewController को वापस जाने के लिए पॉप करने वाला हूं तो इसे पुन: आवंटित करना संभव है? मैं सिर्फ फिर से कॉल करने के लिए ViewWillAppear चाहता हूँ। –

+0

@ हिसाका मुझे नहीं लगता कि यह काम करेगा, परिवर्तनीय को शून्य पर सेट करने से कुछ भी नहीं होगा, क्योंकि नेविगेशन नियंत्रक के पास इसका संदर्भ है और इसे बनाए रखना है। मुझे यकीन नहीं है कि आप फिर से कॉल करने के लिए उस मेहोड को कैसे प्राप्त कर सकते हैं। –

+1

आपका उत्तर यहां सही नहीं है। यदि आप एक मोडल प्रदर्शित करते हैं और फिर मोडल को खारिज करते हैं, तो आपके पास 'viewWillAppear:' को फिर से कॉल किया जाएगा। मेरा मानना ​​है कि ओपी इस समस्या में चल रहा है कि @ डैनियल डिकिसन नीचे नोट करता है। यह स्मृति में पढ़ने के बारे में नहीं है (यह 'viewWillLoad' है)। जब आप विषम आदेशों में नियंत्रकों को घोंसला देखते हैं तो यह देखने में भ्रमित हो रहा है कि कौन सा व्यू कंट्रोलर चार्ज होता है। –

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