6

我有一个 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];

但该方法没有调用。为什么?提前致谢

4

4 回答 4

7

你不见了

self.

只要在viewControllerB的某个地方:

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

然后:

self.mutableArray =[self.viewControllerA loadData];

将工作。

于 2012-10-12T09:26:24.060 回答
4

确保在 viewControllerB 的头文件中指定了 loadData 方法。

- (void)loadData;

之后,您现在可以调用方法 loadData。

[viewControllerA loadData];
于 2012-10-12T09:38:24.560 回答
0

viewControllerA 在调用 [viewControllerA loadData] 之前在 ViewControllerB 中分配?

于 2012-10-12T09:23:59.920 回答
0

从控制器 A 推送控制器 B 时,只需指定

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

然后从 B 调用方法 A。您面临的问题是由于未分配而只是声明了您在 B 中创建的“viewControllerA”。

于 2012-10-12T09:24:03.880 回答