मैं इस हफ्ते पहले अपने सिर को खरोंच कर रहा था, और अब मेरे बेल्ट के नीचे थोड़ी अधिक कोको अनुभव के साथ मुझे लगता है कि मुझे क्या हो रहा है के बारे में एक स्याही है।क्या parentViewController हमेशा एक नेविगेशन नियंत्रक है?
मैं एक ऐसा ऐप्लिकेशन बना रहा हूं जो UINavigationController द्वारा संचालित है। ऐपडिलेगेट में, मैं रूट व्यू कंट्रोलर के रूप में "पेज 1" का उपयोग करके इस कक्षा का एक उदाहरण बना देता हूं।
UINavigationController *aNavigationController = [[UINavigationController alloc]
initWithRootViewController:page1ViewController];
अब यहां समस्या है जहां मुझे समस्या है। "पृष्ठ 1" से मैं एक मॉडल दृश्य नियंत्रक का उपयोग करना चाहता हूं जो इंटरफ़ेस पर स्लाइड करता है और फिर उपयोगकर्ता द्वारा संपादित किए जाने के बाद गायब हो जाता है। मैं इस तरह कोड का उपयोग कर कि, Page1ViewController के अंदर कार्य करें:
[self presentModalViewController:myModalViewController animated:YES];
जब मॉडल देखें नियंत्रक चला गया है, मैं एक मूल्य "पृष्ठ 1" पर क्या उपयोगकर्ता मॉडल देखें नियंत्रक में दर्ज किए गए के आधार पर बदलना चाहते हैं। तो, मैं इस तरह की कुछ कोड है, जो मॉडल देखें नियंत्रक में रहता है ने लिखा है:
[self.parentViewController dismissModalViewControllerAnimated:YES];
[self.parentViewController doSomethingPleaseWithSomeData:someData];
पेज 1 करने के लिए अद्यतन नहीं हो रहा था, और यह मुझे काफी समय लगा एहसास है कि "doSomethingPleaseWithSomeData" संदेश था Page1ViewController पर नहीं भेजा जा रहा है, लेकिन नेविगेशन नियंत्रक।
क्या नेविगेशन नियंत्रकों का उपयोग करते समय यह हमेशा उम्मीद की जा सकती है? क्या मैंने शायद कुछ गलत तरीके से कॉन्फ़िगर किया था? क्या मैं चाहता हूं कि व्यू कंट्रोलर पर जाने का कोई आसान तरीका है (इस मामले में, पेज 1 व्यू कंट्रोलर)।
ठीक वही है जो मैं चाहता हूं, धन्यवाद! मैं कोको में नया हूं, लेकिन एमवीसी के लिए नहीं। हालांकि, जावा वेब डेवलपर होने के बावजूद मैं हमेशा भूल जाता हूं कि "सी" में नियंत्रक एक दूसरे के साथ बातचीत कर सकते हैं! – bpapa
एक अच्छा जवाब है, लेकिन यह मामला क्यों है? यह स्पष्ट रूप से * नहीं * उस मामले में है कि मोडल व्यू का parentViewController किसी भी तार्किक अर्थ में नेविगेशन नियंत्रक है (पृष्ठ 1 नियंत्रक मोडल डिस्प्ले के लिए पूछने वाला नियंत्रक है), तो कोको टच इसे इस तरह क्यों सेट करता है? –