के उप-दृश्य में एक बाल दृश्य नियंत्रक का दृश्य जोड़ें, मैं एक कंटेनर व्यू कंट्रोलर (नीचे दिखाया गया) के एक बच्चे दृश्य नियंत्रक के रूप में एक तालिका दृश्य नियंत्रक जोड़ना चाहता हूं। एप्पल के View Controller Programming Guide के अनुसार मैं अपने containerViewController अंदर कोड की निम्न लाइनों द्वारा इस लक्ष्य को हासिल कर सकते हैं:अभिभावक दृश्य नियंत्रक
[self addChildViewController:tableViewController];
[self.view addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
वास्तव में, कि ठीक काम करता है। अब समस्या यह है कि मैं कंटेनर व्यू कंट्रोलर के रूट व्यू के सबव्यूव के रूप में tableViewController के दृश्य को जोड़ना नहीं चाहता हूं। इसके बजाय मैं इसे कंटेनर व्यू के एक सबव्यूव के रूप में जोड़ना चाहता हूं (छवि देखें) जो स्वयं कंटेनर व्यू कंट्रोलर के मूल दृश्य का सबव्यूव है।
[self addChildViewController:tableViewController];
[self.contentView addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
अब जब मैं इस त्रुटि के साथ एप्लिकेशन इसे तुरंत दुर्घटनाओं का शुभारंभ:
Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller: should have parent view controller: but actual parent is:'
क्या समस्या यहाँ है इस प्रकार है तो मैं इसके बाद के संस्करण कोड बदल? क्या एक विशिष्ट उप अपने कंटेनर व्यू कंट्रोलर के दृश्य में कोई बच्चा दृश्य नियंत्रक का दृश्य जोड़ना संभव नहीं है? या दृश्य नियंत्रक पदानुक्रम में त्रुटि के बिना मैं इसे कैसे प्राप्त कर सकता हूं?
आप इस बारे में सुनिश्चित कर रहे हैं और आप उस कोड का परीक्षण किया है? मैंने कोशिश की है और यह * एक * फर्क पड़ता है कि क्या आप कंटेनर व्यू कंट्रोलर या उसके किसी भी सबव्यू के मूल दृश्य में childViewController का दृश्य जोड़ते हैं। – Mischa
@ मिस्चा स्रोत कोड उत्तर में शामिल था। कृपया जांचें। TableViewController.view.frame = self.contentView.bounds के लिए – Anupdas
+1; – onmyway133