(初学者)尝试将数组从ViewController传递给DetailController

时间:2012-04-04 15:30:51

标签: objective-c xcode arrays

我在RootViewController类中加载了一个数组(recordArray),我需要将其传递给DetailViewController类,以便我可以访问其中的任何变量。我可以成功传递一个值,但我无法知道如何传递整个数组。

我在DetailsViewController.h中创建了第二个NSMutableArray recordArray,添加了@property语句(带保留),并在DetailsViewController.m中合成。然后我在DetailsViewController.m中添加了以下行

recordArray = [[NSMutableArray alloc] initWithArray:self.recordArray];

但是这只是在详细视图中给我一个空数组。

我已经阅读了一些关于此的帖子,但没有找到任何我能够理解的能够实现的内容。我希望我这一切都错了......

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

请参阅此代码:

iPhone SDK: How do I pass an array of values from a ViewController onto other ViewController?

你可以参考 Satya 的回答。

如果您需要更多帮助,请告诉我

修改

我们假设在NSArray

中声明了secondArray SecondViewController

在SecondViewController中定义一个方法:

-(void)setValue:(NSArray *)array
{
    secondArray = array;
}

希望这有帮助。

答案 1 :(得分:0)

问题在于:

recordArray = [[NSMutableArray alloc] initWithArray:self.recordArray];

您只是分配相同的属性recordArray,此时可能是nil,您要做的是依赖注入。因此,只要您实例化DetailController,就可以执行以下操作:

myDetailController.recordArray = myRecordArray

其中myRecordArray是您要在detailview控制器中传递或“注入”的值。