2012-03-08 19 views
6

के दौरान UINavigationController को व्यू कंट्रोलर को धक्का देना मैं एक ऐसे एप्लिकेशन को विकसित कर रहा हूं जहां रिमोट या स्थानीय नोटिफिकेशन प्राप्त करते समय विभिन्न व्यू कंट्रोलर को नेविगेशन स्टैक पर धक्का दिया जाता है।एनिमेटेड व्यू कंट्रोलर संक्रमण

समस्या तब होती है जब एप्लिकेशन सक्रिय होता है और यदि कोई एनिमेटेड व्यू कंट्रोलर संक्रमण के बीच कोई सूचना आती है। यह navigationController को खराब करता है और मैं निम्नलिखित त्रुटि संदेश मिलता है:

नेस्टेड पॉप एनीमेशन समाप्त कर रहा है एक अप्रत्याशित राज्य में एक नेविगेशन संक्रमण भ्रष्ट नेविगेशन पट्टी में परिणाम कर सकते हैं। नेविगेशन बार सबव्यू पेड़ दूषित हो सकता है।

क्या देखने के लिए कोई तरीका है कि व्यू कंट्रोलर बदल रहे हैं और यदि संक्रमण पूरा हो गया है तो प्रतीक्षा करें? या शायद इस समस्या को हल करने के कुछ अन्य तरीके हैं?

हमेशा की तरह, किसी भी मदद की बहुत सराहना की जाती है!

+1

आप एक समाधान मिला? मुझे एक ही समस्या है - जब पुश अधिसूचना आती है तो मुझे दृश्य नियंत्रक प्रस्तुत करने की आवश्यकता होती है। मैं शीर्ष/दृश्य दृश्य नियंत्रक का पता लगा सकता हूं और इसके शीर्ष पर उपस्थित हो सकता हूं, लेकिन यदि उस दृश्य नियंत्रक को संक्रमण को एनिमेट करने की स्थिति में होता है, तो ऐप "UINavigationController: 0x1d921c30> से एक मोडल संक्रमण शुरू करने का प्रयास कर रहा है" जबकि एक संक्रमण पहले ही प्रगति पर है। " UIViewController गुणों में से कोई भी नहीं है जैसे कि बीइंग डिस्मिस्ड काम है क्योंकि वे मूल्यों को वापस नहीं करते हैं जब तक कि दृश्य के भीतर से उपयोग नहीं किया जाता है WillAppear –

उत्तर

4

दृश्य नियंत्रक की स्थिति प्राप्त करने के कुछ तरीके हैं। जैसे: (BOOL)isBeingPresented और (BOOL)isViewLoaded। मैं apple doc's on ViewControllers.

में लगेगा इसके अलावा UINavigationController है भी इस तरह के रूप में तरीकों की एक जोड़ी:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
संबंधित मुद्दे