2010-12-16 9 views
0

3つの異なる情報の配列を読み込む3つの異なるテーブルビューを実装しようとしています フォーラムでは、.tagを使用してテーブルを区別し、条件を使用してデータを読み込むことができます、 私は、私のテーブルにXIBのアイデンティティ/名前のテーブル の名前を変更異なるデータを持つipadの3つのテーブル

を を試してみましたが、他のアレイ を表示するには、セルの内容を変更する

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

    static NSString *CellIdentifier = @"Cell"; 

    //---try to get a reusable cell--- 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    //---create new cell if no reusable cell is available--- 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    } 

/* 
    //---set the text to display for the cell--- 
    NSString *cellValue = [listOfMovies objectAtIndex:indexPath.row]; 
    cell.textLabel.text = cellValue; */ 

if (tableView.tag == 1) { 
    //Deal with table 1 - contains 5 sections 
    cell.textLabel.text = [array objectAtIndex:indexPath.row]; 
} else if (tableView.tag == 2) { 
    //Deal with table 2 - contains 1 section 
cell.textLabel.text = [array2 objectAtIndex:indexPath.row]; 
} 
// cell.textLabel.text = [array3 objectAtIndex:indexPath.row]; 
else { 
    cell.textLabel.text = [array objectAtIndex:indexPath.row]; 
} 

return cell; 
} 

を使用していないが、働いている(ロングショット!) 私のテーブルのためにこの.tagを定義する方法 また、私は行(カウント)とセクション1のために同じようにしたい すべてのテーブルのために 私はちょうどそれらのように残すか? 私は現在、同じ配列を示す3つのテーブルを持っています

ありがとうございました!

+0

私はちょうど(私の他の配列を表示するために)2のための任意のテーブルのためのXIB(ビュー/タグ)、例えばタグに0を変更する場合は、私がキャッチされない例外によりにアプリを終了>取得'NSRangeException'、理由: '*** - [NSCFArray objectAtIndex:]:インデックス(1)を越えて境界(1)' – MaKo

答えて

0

私はこれを試していませんが、独自のユニークなUITableViewDataSourceインスタンスと各テーブルビューの関連付けを検討する傾向があります。そうすれば、それらはすべて同じクラスにコード化される必要はなく、すべてがより簡単になります。あなたがこれを組み立てる方法についてはっきりしていませんが、私は思うには仕方がありません。

0

私はあなたが複雑すぎると思っています。私のアプリケーションの1つでは、3つのテーブル用に1つのテーブルビューコントローラがあります。インタフェース定義のようなものです:

@interface TableViewController : UITableViewController <UIGestureRecognizerDelegate> { 

    IBOutlet UITableView *leftTable; 
    IBOutlet UITableView *centerTable; 
    IBOutlet UITableView *rightTable; 

    ... 

その後、デリゲートメソッドのそれぞれで、私はそれが適切なアクションを実行したり、関連する結果を返す前にあるテーブルを確認します。たとえば、次のように

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

    if (tableView == leftTable) { 
     return [self.leftItems count]; 
    } else if (tableView == centerTable) { 
     return [self.centerItems count]; 
    } else { 
     return [self.rightItems count]; 
    } 

} 
関連する問題