2012-10-12 14 views
6

मेरे पास व्यू कंट्रोलर ए और व्यू कंट्रोलर बी है। मैं ViewControllerB से ViewControllerA की एक विधि को कॉल करना चाहता हूं।किसी अन्य व्यू कंट्रोलर से कॉलिंग विधि

-(NSMutableArray*) loadData; 

ViewControllerB.h में:

#import "ViewControllerA.h" 
    ....... 
@property (nonatomic, strong) ViewControllerA * viewControllerA; 
@property (nonatomic, strong) NSMutableArray * mutableArray; 

ViewControllerB.m में:

ViewControllerA में उपस्थित एक विधि है

self.mutableArray =[viewControllerA loadData]; 

लेकिन विधि बुला नहीं है। क्यूं कर? अग्रिम धन्यवाद

+0

क्या आपने व्यू कंट्रोलर के शीर्षलेख में फ़ंक्शन जोड़ा था? –

+0

क्या आपके पास क्लाइंट विधि देखने के लिए नियंत्रक ए विधि में विधि का मतलब था? –

उत्तर

7

आप viewControllerB में

self. 

याद कर रहे हैं जब तक कहीं:

self.viewControllerA = [[viewControllerA alloc]init]; //or some other initialization occurs... 
तो

:

self.mutableArray =[self.viewControllerA loadData]; 

काम करेंगे।

+0

बहुत बहुत धन्यवाद –

0

viewControllerA को [viewControllerA loadData] को कॉल करने से पहले ViewControllerB में आवंटित किया गया है?

0

नियंत्रक से नियंत्रक बी धक्का जबकि A..just

viewControllerB.viewControllerA = self; 
[self.navigationController pushViewController:viewControllerB animated:YES]; 

निर्दिष्ट और फिर बी कॉल विधि a.The समस्या है जो आप का सामना करना पड़ा से गैर आवंटन की वजह से है और बस declaratio "viewControllerA" आप जो बी में बनाया था

4

सुनिश्चित करें कि विधि लोडडेटा को नियंत्रक बी की हेडर फ़ाइल में निर्दिष्ट किया गया है।

- (void)loadData; 

इसके बाद, अब आप विधि लोडडेटा को कॉल कर सकते हैं।

[viewControllerA loadData]; 
संबंधित मुद्दे