3

iOS 5.1 用の iPhone アプリを開発しています。UISearchDisplayController と他のビューを備えた UITableView を持つ UIViewController を構築しました。これらはすべて何らかの形でテーブルに関連しています。UIVIewController は、テーブルのデリゲートおよびデータソースであり、テーブルおよび検索表示コントローラーに対していくつかのカスタマイズ (グラフィカルおよびビジネス関連) を行います。これまでのところ、すべて問題ありませんでした。

問題は、この同じテーブル (同じタイプの要素の異なるサブリストを持つ可能性がある) を別のコントローラー (アプリの別の画面) に配置したいことです。コントローラーの tableView を他のコントローラーのサブビューとして追加しようとしましたが、機能しません。(UIViewController ではなく) UIView のサブクラスとしてテーブルを再構築し、それをサブビューとして追加しようとしましたが、どちらも機能しませんでした (NIB ファイルからビューをロードしましたが、IBOutlets を含むすべてのプロパティは nil または 0x000000 です)。 )。

多くの検索を行った後、さまざまなコントローラーでテーブルビューを再利用する方法の例は見つかりませんでした。ヒントはありますか?例はありますか?UIViewController または UIView としてビルドする必要がありますか? 再利用したいロジックのほとんどがデリゲート内のコードであることを念頭に置いて、どのクラスをテーブルと検索表示のデリゲートにする必要がありますか?

よろしくお願いします

4

1 に答える 1

1

最も簡単な解決策は、独自の Datasource クラスを (おそらくシングルトンとして) 作成し、これを他のコントローラーで再利用することではないでしょうか? このようにして、データを取得して管理する方法は、データを表示する方法から抽象化されます。あるべき姿。これがMVCのすべてです。

于 2012-04-26T06:57:24.370 に答える