私は splitview コントローラを持っていて、詳細ビューで複数のテーブルを管理したいと思います (このココア コントロールを使用して、セクションごとに 1 つのテーブル)。特定のView Controllerを4つ使用するか、サブビューを制御するView Controllerを1つだけ使用する必要がありますか?
2 に答える
ドキュメントに従って:
UITableView オブジェクトには、データ ソースとして機能するオブジェクトと、デリゲートとして機能するオブジェクトが必要です。通常、これらのオブジェクトはアプリケーション デリゲートか、より頻繁にはカスタム UITableViewController オブジェクトのいずれかです。データ ソースは UITableViewDataSource プロトコルを採用し、デリゲートは UITableViewDelegate プロトコルを採用する必要があります。データ ソースは、UITableView がテーブルを構築するために必要な情報を提供し、テーブルの行が挿入、削除、または並べ替えられるときにデータ モデルを管理します。デリゲートは、テーブルで使用されるセルを提供し、アクセサリ ビューや選択の管理など、他のタスクを実行します。
単一の UIViewController のすべてのものと比較して、コードをモジュール化し、管理しやすい4 つの異なる UIViewController を使用することをお勧めします。
単一のベース ビューでテーブル ビューの数を使用できますが、タグ値 (任意の整数値) または名前などのタグで処理する必要があります。タグで管理する必要があると思います。これは次のようになります。
- (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 内に大きなステートメントをコーディングしないように常に注意してください。別の方法では、ロード時にそのセルを初期化するのに非常に時間がかかります。