2012-10-12 23 views
6

Mam ViewControllerA i ViewControllerB. Chcę wywołać metodę ViewControllerA z ViewControllerB.Metoda wywołania z innego ViewController

W ViewControllerA jest obecna metoda:

-(NSMutableArray*) loadData; 

W ViewControllerB.h:

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

W ViewControllerB.m:

self.mutableArray =[viewControllerA loadData]; 

ale metoda nie dzwoni. Czemu? Z góry dziękuję

+0

czy dodano funkcję do nagłówka kontrolki view? –

+0

Czy chcesz, aby metoda w viewControllerA była metodą klasy? –

Odpowiedz

7

brakuje

self. 

dopóki gdzieś w viewControllerB:

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

następnie:

self.mutableArray =[self.viewControllerA loadData]; 

zadziała.

+0

Dziękuję bardzo –

0

viewControllerA jest przydzielana w ViewControllerB przed wywołaniem [viewControllerA loadData]?

0

Naciskając kontrolera B z kontrolerem A..just określić

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

a następnie od rozmowy B metoda a.Odległość problemu której wychodził ze względu na brak przydziału i tylko DEKLARACJA z „viewControllerA”, który cię stworzył w B.

4

Upewnij się, że metoda loadData została określona w pliku nagłówkowym viewControllerB.

- (void)loadData; 

Po tym czasie można teraz wywołać metodę loadData.

[viewControllerA loadData]; 
Powiązane problemy