0

私はこれをSOで見つけました。それは私の質問に正確に答えていません。つまり、ストーリーボードを使用しながらUITableViewをあるコントローラーから別のコントローラーに複製し、同期を維持する方法はありますか?

4

3 に答える 3

1

位置やレイアウトなど、初期プロパティ値が同じままであるという意味で、それらのクローンを作成できます。このためには、ストーリーボードからUITableViewをコピーし、宛先ViewControllerに移動してそこに貼り付けます。

2つのViewController間で同じUITableViewオブジェクトを共有する場合でも可能ですが、自分で行う必要のある作業量を見積もる必要があります。ビューコントローラがテーブルビューのみを処理する場合、作業の多くは内部で行われ、テーブルはあなたに引き渡されます。UITableViewを2つのViewController間で共有する場合は、慎重に操作する必要があります。ビューのライフサイクル全体を処理する必要があります。などの通常の方法を参照してviewDidLoadくださいviewDidAppear。ビューが2つのシーンに存在する場合、どのようにそれらを処理しますか?たぶん、あなたはユニークなデザインパターンを発明しているでしょう-もしあなたがそれを達成するための最も楽観的でプログラム的に正しい方法を見つけたら。

ストーリーボードでは、データの変更が2つの間でシームレスに反映されるレベルまでクローンを作成することはできません。ストーリーボードは、その名前が示すように、コードが引き継ぐ前に、最初にどのように見えるかを知るために物を描くことができる単なるボードです。

目的を達成するには、適切なデリゲートメソッドを使用して2つのテーブルビューを更新する共有モデルを作成する必要があります。ほとんどの場合、そのようなモデル(NSArray、または要件に応じたコレクション)は、共有クラス内に存在でき(アプリデリゲートは間違った選択ではありません)、そこから両方のビューコントローラーが参照できます。これはきちんとした方法です。プログラミングの観点からだけでなく、いつでもコードを扱うすべての人にとって拡張可能で役立つものです。

モデルからUIを更新する方法の詳細については、最初から始めて、つまり本を読み進める以外に何もありません。

于 2013-03-19T17:29:34.560 に答える
0

私はそのような可能性に気づいていません

さまざまなコントローラー間でテーブルビューソースオブジェクトを渡し、ビューコントローラーに独自のテーブルビューを処理させます。

于 2013-03-19T17:17:33.063 に答える
0

最善のアプローチは、無料で入手できるSensible TableViewなどのフレームワークを使用してから、両方のテーブルビューに同じモデルを使用することだと思います。これは本当に簡単なはずです。

于 2013-03-19T19:31:28.593 に答える