1

状況 TTTableViewControllerにTTListDatasource(TTModelを使用)を入力します。私のdidSelectObjectメソッドはTTViewControllerを開きます。

TTViewControllerでより多くの情報を表示したい質問。

1.質問:データソースを渡す(そして新しいクエリを実行する)必要がありますか、それとも特定のVO(すべての情報を含む)を渡す必要がありますか?

2.質問:新しいTTViewControllerでデータソースにアクセスするにはどうすればよいですか?

ありがとう、

4

1 に答える 1

0

TTTableViewControllerのdidSelectRowAtIndexPath:定義で、TTListDatasourceを使用して、対応するオブジェクトへの参照を取得します。次に、それをTTViewControllerに渡します。これは、TTViewControllerのプロパティを使用することで最もよく達成されるため、保持/解放について心配する必要はありません。

@property (nonatomic, retain) TTModel *model;

次に、didSelectRowAtIndexPathで:

TTModel *model = //get the correct model
TTViewController *vc = [[TTViewController alloc] initHoweverYouWant];
vc.model = mode;

いくつかのヒント:クラスのプレフィックスを(正しく)付けているので、TTViewControllerはそれほど説明的ではありません。多分TTPhotoViewControllerか何かがもっと説明的かもしれません。常に冗長性の側で誤りを犯します:)

さらに、まったく同じデータソースがまったく同じ理由で他の場所で使用される場合を除いて、別のオブジェクトを作成する代わりに、UITableViewControllerサブクラスにUITableViewDataSourceプロトコルを実装させるだけで非常に便利です。これは、コアデータを使用している場合にも、NSFetchedResultsControllerでより適切に機能します。

于 2010-12-02T12:30:36.353 に答える