2012-09-24 8 views
5

क्या हो रहा है यह पता नहीं लगा सकता है।UIViewController को क्यों हटाया गया है हालांकि यह स्क्रीन पर है

मैं एक आईफोन-ऐप बना रहा हूं जो पेजिंग के साथ स्क्रॉल व्यू का उपयोग करता है।

[self.storyboard instantiateViewControllerWithIdentifier:@"identifier"]; 

मैं एक अस्थायी सरणी दृश्य नियंत्रकों जोड़ सकते हैं और subviews के रूप में पुस्तक को देखने के लिए अपने विचार जोड़ें: पुस्तक दृश्य कई बार देखा गया है, जिसका दृश्य नियंत्रकों को फोन करके स्टोरीबोर्ड से लोड होते हैं। स्क्रीन पर दिखाई देने के बाद, व्यू कंट्रोलर को हटा दिया जाता है, इसलिए लक्ष्य-कार्य अब और काम नहीं करते हैं। संदेश deallocated उदाहरण 0x914f0e0 के लिए भेजा: - [: withObject: withObject: StreamingViewController performSelector]

***:

जब मैं ज़ोंबी वस्तुओं सक्षम, डिबगर नियंत्रक की जाने वाली कार्रवाई को भेजने पर यह लिखा

मैंने वास्तव में इसे ठीक करने की कोशिश की लेकिन सफलता के बिना, इसलिए हर मदद की बहुत सराहना की जाती है।

कुछ और कोड:

StreamingViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Streaming View Controller"]; 

[self.pageControllers addObject:controller]; // adding view controller to mutable array 

controller.view.frame = self.scrollView.frame; 
[self.scrollView addSubview:controller.view]; 
+0

पेज नियंत्रक कैसे घोषित किए जाते हैं? – mark

+0

पेज नियंत्रकों को एक निजी @property – boeqqsh

उत्तर

3

आप एआरसी चीजों का उपयोग कर रहे हैं, तो ही अपनी पढ़ाई छोड़ आम तौर पर न हो तो आप कुछ करने के लिए एक वैध सूचक है। तो आपके मामले में आपका व्यू कंट्रोलर गुंजाइश से बाहर हो जाता है और जारी किया जाता है। दृश्य अभी भी बनाए रखा गया है क्योंकि यह self.scrollView द्वारा आयोजित किया जा रहा है। एक सरणी में दृश्य नियंत्रक जोड़ना उस पर ठीक होगा, लेकिन केवल अगर सरणी को तुरंत ठीक किया गया है। Poperties स्वचालित रूप से तत्काल नहीं हैं। संपत्ति का उपयोग करने से यह तब तक आपके लिए तत्काल नहीं होता है जब तक आप एक्सेसर को ओवरराइड नहीं करते। कोको की प्रकृति के कारण आपको किसी वस्तु को शून्य संपत्ति में जोड़ने की कोशिश करके कोई त्रुटि या संदेश नहीं मिलेगा क्योंकि यह पूरी तरह से वैध कोड है।

जांचें कि आप पेज कंट्रोलर कैसे बना रहे हैं और सुनिश्चित करें कि आप इसका उपयोग कर रहे हैं इससे पहले।

उदाहरण के लिए। self.pageControllers = [[NSMutableArray alloc] init];

+0

के रूप में घोषित किया गया है यह कोड की यह पंक्ति थी। आपको बहुत - बहुत धन्यवाद! :) – boeqqsh

+0

3 साल बाद और अभी भी उपयोगी! धन्यवाद! – PaperThick