从另一个ViewController调用方法
我有一个ViewControllerA和一个ViewControllerB。 我想从ViewControllerB调用ViewControllerA的方法。
在ViewControllerA中提供了一个方法:
-(NSMutableArray*) loadData;
在ViewControllerB.h中:
#import "ViewControllerA.h" ....... @property (nonatomic, strong) ViewControllerA * viewControllerA; @property (nonatomic, strong) NSMutableArray * mutableArray;
在ViewControllerB.m中:
self.mutableArray =[viewControllerA loadData];
但方法不是调用。 为什么? 提前致谢
你错过了
self.
只要在viewControllerB的某个地方:
self.viewControllerA = [[viewControllerA alloc]init]; //or some other initialization occurs...
然后:
self.mutableArray =[self.viewControllerA loadData];
将工作。
确保在viewControllerB的头文件中指定了loadData方法。
- (void)loadData;
比之后,现在可以调用loadData方法。
[viewControllerA loadData];
viewControllerA在调用[viewControllerA loadData]之前在ViewControllerB中分配?
在从控制器A推控制器B的同时,请指定
viewControllerB.viewControllerA = self; [self.navigationController pushViewController:viewControllerB animated:YES];
然后从B调用方法A.你遇到的问题是由于在B中创build的“viewControllerA”的非分配和声明造成的。