2012-10-12 59 views
6

我有一個ViewControllerA和一個ViewControllerB。我想從ViewControllerB調用ViewControllerA的方法。從另一個ViewController調用方法

在ViewControllerA存在的方法:

-(NSMutableArray*) loadData; 

在ViewControllerB.h:

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

在ViewControllerB.m:

self.mutableArray =[viewControllerA loadData]; 

但該方法並不調用。爲什麼?在此先感謝

+0

您是否將函數添加到viewcontroller的頭部? –

+0

您是否認爲viewControllerA中的方法是類方法? –

回答

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

雖然從控制器推控制器B A..just指定

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

,然後從中面臨乙呼叫的方法答。問題是由於非分配和只是「viewControllerA」的declaratio您在B.創造了

4

確保在viewControllerB的頭文件中指定了loadData方法。

- (void)loadData; 

之後,您現在可以調用loadData方法。

[viewControllerA loadData];