0

tableViewコントローラーの2つのサブクラスがあるとします。

どちらも、ヘッダーの下部に同じヘッダービューとフッタービューがあります。どちらもプルを実装して更新します。

どちらにもいくつかの共通の機能があります。

唯一の違いは、1つはビジネス全体を表示するためのもので、もう1つはブックマークしたビジネスのみを表示するためのものです。

両方とも同じ親クラスを持っている必要があり、異なるものは子クラスで解決されているようです。とにかく違いはわずかです。

親には独自のXIBがあり、子には独自のXIBがあると思います。

うーん...それはどのようにうまくいくでしょうか?コンテナUIViewControllerを除いて、各コントローラーはコンテンツのフルビューを表示する必要があります。では、どのビューを表示する必要がありますか?子供またはスーパークラス?子ビューは、スーパークラスのサブビューを追加する必要がありますか?

誰もがそれを試したことがありますか?

このアプローチを使用するWeb上のコードサンプルはありますか?

4

1 に答える 1

1

説明したビジネスロジックに基づくと、提示しているデータのリストを除いて、すべてが共通しているように思われます。サブクラスのプロパティを公開しUITableViewControllerて、テーブルビューが表示するビジネスオブジェクトを設定できます。

@interface JTBusinessesTableViewController : UITableViewController

@property (nonatomic, strong) NSArray *businesses;

@end

このクラスをインスタンス化するコードは、ビジネスオブジェクトを設定します。

JTBusinessesTableViewController *businessListings; //Instantiate from XIB or Storyboard
businessListings.businesses = [self bookmarkedBusinesses];

[self.navigationController pushViewController:businessListings animated:YES]

すべてのビジネスを表示するためのコードは、それほど変わりません。

JTBusinessesTableViewController *businessListings; //Instantiate from XIB or Storyboard
businessListings.businesses = [self allBusinesses]; //  Here we assign all of them

[self.navigationController pushViewController:businessListings animated:YES]

表示するビジネスオブジェクトであるこのビューコントローラを選択的に指定しているだけです。

于 2012-10-16T07:02:26.547 に答える