2011-06-06 6 views
5

आईफोन एप्लिकेशन में मुझे किसी अन्य व्यू कंट्रोलर ऑब्जेक्ट में किसी विधि से बनाते समय एक नए व्यू कंट्रोलर ऑब्जेक्ट में कुछ मानों को पास करने की आवश्यकता है, इसलिए मैं इन मानों को (आईडी) initWithNibName में प्रारंभ कर सकता हूं: नए व्यू कंट्रोलर की विधि मैं उन मानों को viewdidLoad विधि में लोड कर सकता हूं।initWithNibName के साथ पारित पैरामीटर:

क्या मैं जानना चाहता हूँ कि कैसे मैं जावा में अधिक भार निर्माता की तरह एक नया viewcontrollor वस्तु के निर्माता (initWithNibName) के मूल्यों (पैरामीटर) पारित करना मुझे सिर्फ दिखा कैसे initWithNibName अतिरिक्त पैरामीटर और साथ कहा जाता है कुछ कोड उदाहरण दे रहा है कैसे में नव निर्मित वस्तु धन्यवाद उन्हें पुनः प्राप्त करने के ...


उत्तर


इस तरह से मैं समस्या का समाधान है "अवलोकन एक वस्तु बुद्धि है ज जिम्मेदार बताते हैं "ViewControllor.h में मैं ViewControllor.m फ़ाइल में

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation; 

डाल मैं

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization on passed parameter observation object   
    draftObservation = observation; 
} 
return self; 

}

डाल तो मैं इसे किसी अन्य वर्ग में इस तरह से फोन

ObsevationListView *obsevationListView = [[ObservationViewControllor alloc] 
              initWithNibName:@"ObservationViewControllor" 
              bundle:nil set:observer]; 
[self.navigationController pushViewController:obsevationListView animated:YES]; 

यह ठीक काम करता है। अगर किसी को भी आप अपनी कक्षा में एक और प्रारंभकर्ता बनाना चाहिए इस

+0

बहुत बहुत अच्छा है ... मैं वास्तव में चाहता था इस ... धन्यवाद एक टन। – viral

उत्तर

7

से मदद, जैसे

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParam:(id)aParam { 
... 
self.param = aParam; 
} 
+0

और अपने .h (upvotted) में प्रारंभिक घोषणा करने के लिए मत भूलना – Jorge

+0

इसके अलावा प्रारंभिकता के साथ आपकी पहली पंक्ति भी होनी चाहिए: 'self = [self initWithNibName: nibNameOrNil बंडल: nibBundleOrNil];' उचित प्रारंभिकरण के लिए। – JeroenEijkhof

+0

धन्यवाद दोस्तों मैंने आपकी मदद से किया। डेटा के साथ एक और प्रारंभकर्ता और पास ऑब्जेक्ट बनाएं और डेटा को फ़ील्ड में लोड करें। लोडलोड विधि –

0

एक अन्य समाधान है कि पैरामीटर के लिए कोई संपत्ति है और इसे सेट से पहले या आप के बाद करने के लिए है कुछ पाने मुझे खुशी है निम्नलिखित कोड का उपयोग कर फोन:

initWithNibName:bundle: