0

tableviewcontroller、mapviewcontroller、callingviewcontrollerで使用される値の可変配列があります。私はそれらすべてを更新しています。

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

テーブルでdataArrayを宣言し、ビューコントローラをマップして、callingViewControllerのdataArrayへのポインタにする方法はありますか?だから私は1つを更新する必要がありますか?

***さて、私はここで本当にばかげた間違いをしました。ある時点で、初期化を変更し、dataArrayとしてnilを渡しました。何らかの理由で、「if(!dataArray)create new」句を使用して、それを自分から隠しました。

カーンは正しいです。[dataArray addObject:object atIndex:0]; 必要なのはそれだけです。

4

3 に答える 3

1

これはもう少し複雑ですが、最善の解決策になると思います。これらのさまざまなViewControllerのすべてが、データを管理している単一のオブジェクトを参照するための何らかの方法が必要です。これはデリゲートの場合もあれば、メインのdataArrayを所有するシングルトンの場合もあります。

ここまたはグーグルでこれらの用語の両方を検索すると、どちらのルートでも始めることができるはずです。

于 2012-05-14T22:28:41.943 に答える
0

コメントの後:

dataArraytableViewとmapViewの両方で呼び出され、またcallingViewで呼び出されるプロパティを宣言するのはどうですか。次に、callingViewControllerで、myFirstArrayと呼ばれる可変配列を初期化し、次のようにします。

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

このように、それらは両方とも同じオブジェクトを指し、一方で行った変更はもう一方に反映されます。試してみる!

于 2012-05-14T23:58:37.827 に答える
0

AppDelegateクラスで配列を作成すると、アプリ内の他のクラスからアクセスできます。

于 2012-05-14T22:44:26.080 に答える