2012-05-14 78 views
0

我有一个可变的数组值在tableviewcontroller,mapviewcontroller和callingviewcontroller中使用。我一直在更新它们,即。将数据传递给视图控制器

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

是否有表和图viewcontrollers,这将使他们的指针dataArray的在callingViewController宣布dataArray中的一种方式?所以我只需要更新一个?

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

凯恩是正确的。 [dataArray addObject:object atIndex:0];所有需要的都是 。

+0

谁拥有这些视图控制器?应用程序委托?你的rootView控制器? –

+0

callingviewcontroller拥有tableviewcontroller和mapviewcontroller –

回答

0

您的评论后:

你怎么样声明一个名为dataArray在您的tableView都和MapView的,也callingView财产。然后,在你callingViewController,你初始化一个叫做可变数组可以说myFirstArray做:

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

这样,他们都将被指向同一个对象,并改变你在做一个将在其他反映。试一试!

1

这是一个更多的参与,但我认为将是最好的解决方案。你应该有一些方法让所有这些不同的ViewController引用管理数据的单个对象。这可能是一个委托,或者它可能是拥有主数据数组的单例。

在这里或谷歌搜索这两个条款,你应该能够开始使用这两种路线。

0

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

相关问题