0

我有一个可变的值数组,用于 tableviewcontroller、mapviewcontroller 和调用viewcontroller。我一直在更新它们,即。

[dataArray addObject:object atIndex:0];
[tvc. dataArray addObject:object atIndex:0];
[mvc. dataArray addObject:object atIndex:0];

有没有办法在表中声明 dataArray 并映射视图控制器,使它们指向 callViewController 中的 dataArray?所以我只需要更新一个?

***好吧,伙计们,我在这里犯了一个非常愚蠢的错误。在某些时候,我更改了初始化并将 nil 作为 dataArray 传递,出于某种原因,我有一个“if (!dataArray) create new”子句来隐藏它。

卡恩是对的。[dataArray addObject:object atIndex:0]; 这就是我们所需要的。

4

3 回答 3

1

这涉及更多一点,但我认为这将是最好的解决方案。您应该有一些方法让所有这些不同的 ViewController 引用管理数据的单个对象。这可能是一个委托,也可能是一个拥有主 dataArray 的单例。

在此处或在 google 上搜索这两个术语,您应该能够开始使用任一路线。

于 2012-05-14T22:28:41.943 回答
0

如果您在 AppDelegate 类中创建数组,那么您可以从应用程序中的任何其他类访问。

于 2012-05-14T22:44:26.080 回答
0

在您发表评论后:

你如何声明一个dataArray在你的tableView和mapView以及callingView中调用的属性。然后,在您的调用视图控制器中,您初始化一个名为 myFirstArray 的可变数组并执行以下操作:

NSMutableArray *myFirstArray = [NSMutableArray array];
self.dataArray = myFirstArray;
myTableView.dataArray = myFirstArray;
myMapView.dataArray = myFirstArray;

这样,它们都将指向同一个对象,并且您在其中所做的更改将反映在另一个对象中。试试看!

于 2012-05-14T23:58:37.827 回答