5

これは典型的な問題のように思えますが、2 つの別々のデータ ソースに対して同じ動作をする UITableView があります。重複が少なく、if/else 条件がないようにクラス階層を設計する最善の方法は何ですか? ビュー コントローラーは、両方のデータ ソースに対してまったく同じことを行います。それらはデータ セット内で一意です。親コントローラーにデータ ソース/それぞれのタイトルを設定させる必要がありますか?

UISegmentControl を使用して、インターフェイスは同じだがデータ ソースが異なる 2 つのビューを表示する場合にも、同じ問題が発生します。

4

1 に答える 1

12

ここでは用語に注意してください。UITableView には a と呼ばれるものdataSourceがありますが、基本的に、2 つの異なるデータ セットを参照しているようです。

あなたが提案している場合、テーブルdataSource(UITableViewDataSource プロトコルに準拠するオブジェクト) には、3 つの配列があります。

  • currentlyViewedArray
  • データセットOneArray
  • データセットTwoArray

dataSource メソッドでは、currentViewedArray をテーブルのデータのソースとして使用します。

次に、currentViewedArray を表示する配列に設定します。

self.currentlyViewedArray = self.datasetOneArray;
[theTableView reloadData];

UISegmentedControl を使用して、2 つの配列を切り替えることができます。

于 2009-01-06T19:05:31.830 に答える