2016-12-09 7 views
0

Iは、ビューコントローラA、BおよびCリフレッシュ「ルート」データは

Aは、ナビゲーションコントローラのルートビューコントローラであるを有するUINavigationControllerとストーリーボードを使用していました起動時にいくつかのデータが取得されます。 Aの行をクリックすると、そのデータを持つBビューコントローラが表示されます。 Bの行をクリックすると、C View Controllerが表示されます。

後で、私はCの中にいて、ユーザーはデータを更新したいと思っています。意味私は再びビューコントローラのルートデータをフェッチする必要があります。

ユーザーがデータを更新した後、再度ナビゲーション階層を再構築するにはどうすればよいですか?私はAでデータソースを更新し、次にBで、最後にCでデータソースを更新する必要があります。

+0

を開始するには良い場所だと思いAとC からアクセスできる可能性があり、別のオブジェのAのすべてのロジックは、あなたは、単にCに表示されているのデータを更新することはできません置く必要があります?それとも、ルート全体をリフレッシュする必要がありますか? –

+0

すべてのデータを更新する必要があります。それ以外の場合は、矛盾した状態になります。 –

答えて

0

これは単なる先行計画の問題ですか?それはあなたが必要になります施設を自分を提供するために、あなた仕事ですので、それはあなたプログラムです。このような状況では、何かを "再構築"する必要はありません(あなたはそれを行うことができますが、私はそう思います)。 AとBの両方は、Cを表示している間もまだ存在しているので、必要なときには、Cと一緒に通信するだけです。データ取得パワーがAのみに存在する場合は、Cがリフレッシュを要求して更新データを受け取るためにコールできるメソッドをAに渡すだけです。その後、と表示された場合は、viewWillAppearを使用して、それぞれインターフェイスも更新します。しかし、AとBがただのオブジェクトであり、オブジェクト間の通信は、結局のところ、オブジェクト指向プログラミングのすべてである。

+0

よく、取得されたデータが格納されます。 BはAのデータのサブセットを示し、CはBのデータのサブセットを示しています。フェッチをやり直した後、A、B、Cのデータプロパティを更新する必要があると思いますか?意味私は、ナビゲーションコントローラへの参照を取得し、それがビュースタックコントローラへのアクセスを取得し、データを更新するView Controllerプロパティにアクセスする必要がありますビューコントローラの権利ですか? –

+0

これは確かに私がここで説明しているように一方通行です:http://stackoverflow.com/a/40986685/341994しかし、おそらくもっと良い方法があります。たとえば、Aへの参照をAからBへ、次にBからCへ渡すことができます。さらに、AからBへ、次にBからCへの参照_を渡すことができますリフレッシュの方法を知っているヘルパーオブジェクトにラップされています。それが私のやり方です。 Appleはこのパターンを「依存性注入」と呼びます。それぞれの連続したView Controllerに必要なものすべてを提供します。 – matt

0

あなたは、私がこのpost

関連する問題