0

私は splitview コントローラを持っていて、詳細ビューで複数のテーブルを管理したいと思います (このココア コントロールを使用して、セクションごとに 1 つのテーブル)。特定のView Controllerを4つ使用するか、サブビューを制御するView Controllerを1つだけ使用する必要がありますか?

4

2 に答える 2

1

ドキュメントに従って:

UITableView オブジェクトには、データ ソースとして機能するオブジェクトと、デリゲートとして機能するオブジェクトが必要です。通常、これらのオブジェクトはアプリケーション デリゲートか、より頻繁にはカスタム UITableViewController オブジェクトのいずれかです。データ ソースは UITableViewDataSource プロトコルを採用し、デリゲートは UITableViewDelegate プロトコルを採用する必要があります。データ ソースは、UITableView がテーブルを構築するために必要な情報を提供し、テーブルの行が挿入、削除、または並べ替えられるときにデータ モデルを管理します。デリゲートは、テーブルで使用されるセルを提供し、アクセサリ ビューや選択の管理など、他のタスクを実行します。

単一の UIViewController のすべてのものと比較して、コードをモジュール化し、管理しやすい4 つの異なる UIViewController を使用することをお勧めします。

于 2013-03-03T18:24:59.867 に答える
0

単一のベース ビューでテーブル ビューの数を使用できますが、タグ値 (任意の整数値) または名前などのタグで処理する必要があります。タグで管理する必要があると思います。これは次のようになります。

  • (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

if (tableView.tag == ) {戻り値; }

}

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

if (tableView.tag == ) {戻り値; }

}

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (tableView.tag == ) { <#statements#> } static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // セルを構成します...

    セルを返します。}

ただし、このシナリオでは、条件全体を穏やかに処理する必要があります。そして、 cellForRowAtIndexPath 内に大きなステートメントをコーディングしないように常に注意してください。別の方法では、ロード時にそのセルを初期化するのに非常に時間がかかります。

于 2013-03-03T18:58:24.393 に答える