2010-11-08 4 views
6

तो मेरे पास दो विचार हैं। जब मैं ऐप शुरू करता हूं तो एक दृश्य लोड होता है। फिर जब मैं उस दृश्य पर एक बटन दबाता हूं तो यह एक और दृश्य लोड करता है।जब मैं विचारों के बीच आगे और पीछे स्विच करता हूं, तो मेरा दृश्यडिडलोड को दूसरी बार नहीं कहा जा रहा है?

- (void)playGame { 

[levelView.view removeFromSuperview]; 
[self.window addSubview:[gameView view]]; 
[UIView commitAnimations]; 
} 

यह ठीक नई लोड होगा:

- (IBAction)triggerGame 
{ 

leveldata = [[NSMutableDictionary alloc] init]; 

[leveldata setValue:@"hide" forKey:@"shootarrow"]; 

[leveldata writeToFile:[self levelFilePath] atomically:YES]; 
[leveldata release]; 


Papertoss_MaraAppDelegate *mainDelegate = (Papertoss_MaraAppDelegate *)[[UIApplication sharedApplication] delegate]; 
[mainDelegate playGame]; 

} 

यह क्रिया प्रतिनिधि कार्यान्वयन ज़रा सी कहा जाता है, जो इस तरह दिखता में एक विधि से चलाता है। तब मेरे पास एक और बटन है जो एक ही सटीक चीज करता है, लेकिन यह मुझे पहले दृश्य में वापस लाता है। और यह भी महान काम करता है। मैं एक दृश्य से दूसरे को आसानी से नेविगेट करने में सक्षम हूं। लेकिन मेरे पास एकमात्र समस्या है, जब मैं दूसरी बार दूसरी बार लोड करने का प्रयास करता हूं, तो ViewDidLoad को फिर से नहीं कहा जाता है। मैंने डीडलोड लोड विधि में एनएसएलओजी() करके इसका परीक्षण किया।

मेरे ऐप के लिए जो मैं चाहता हूं उसे करने के लिए मुझे दृश्य को फिर से कॉल करने की आवश्यकता है। मैं अनुमान लगा रहा हूं कि जब मैं उनके बीच स्विच करता हूं तो मेरा विचार पूरी तरह से अनलोड नहीं होता है।

किसी भी मदद की बहुत सराहना की जाती है।

उत्तर

9

मुझे लगता है कि आपको फ़ंक्शन व्यूडिडएपियर की आवश्यकता है। viewDidLoad केवल एक बार प्रति दृश्य कहलाता है जब तक कि कुछ इसे अनलोड करने का कारण बनता है, जैसे स्मृति चेतावनी। viewDidAppear हर बार जब दृश्य दिखाई देता है कहा जाता है।

+0

क्या होगा यदि मुझे इसे अनलोड करने की आवश्यकता है, क्योंकि मैं चाहता हूं कि मैं कौन सा बटन दबाता हूं, इस पर निर्भर करता हूं कि मैं अलग-अलग परतों को लोड करना चाहता हूं। मुझे यह कैसे करना है? –

+0

प्लस दोनों त्वरित प्रतिक्रियाओं के लिए धन्यवाद। –

+0

एनवीएम मुझे यह काम करने के लिए मिला। धन्यवाद। –

4

आप चाहते हैं -viewDidAppear: "हर बार दृश्य दिखाया गया है" सामान के लिए।