0

さまざまなアイテムを表示する複数のテーブル ビューがあります。ただし、各セルの詳細ビューは同じレイアウトにする必要があります。ほとんど同じコードになるため、テーブルごとに異なる詳細ビュークラスを実装する必要なく、各テーブルのすべてのセルに同じ詳細ビューを使用したいと考えています。どうすればいいですか?

次のメソッドは、テーブル ビューの 1 つにあります。これにより、セルが選択されたときに詳細ビューが表示されます。

-(void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"didSelectRowAtIndexPath");
    AppDelegate *delegate =
        (AppDelegate *)[[UIApplication sharedApplication] delegate];

    Detail *detail=
        [[Detail alloc] initWithIndexPath:indexPath];

    [delegate.navController pushViewController:detail animated:YES];

    [tv deselectRowAtIndexPath:indexPath animated:YES];
}

以下は、Detail ビュー クラスの viewDidLoad メソッドです。

- (void)viewDidLoad
{
    [super viewDidLoad];

    AppDelegate *delegate =
    (AppDelegate *)[[UIApplication sharedApplication] delegate];

    PokemonInfo *thisPokemon = [delegate.allArray objectAtIndex:index.row];
    self.title = thisPokemon.name;

    nameView.text = thisPokemon.name;
    typeView.text = thisPokemon.type;
    attackView.text = thisPokemon.attack;
    attackView.editable = NO;
}
4

1 に答える 1

0

ビューを作成し、ペン先に配置します。ビュー内の各要素に一意のタグを付けます。nib (UINib) を使用してビューをインスタンス化する必要がある場合は、「viewWithTag」を使用して要求することで、各要素にアクセスします。セルをリサイクルしていると仮定すると、常に任意のビューの要素に適切なデータを設定します。

前述のように、より伝統的なアプローチは nib でセルをインスタンス化してから同じことを行うことです。アクセスする各要素には一意のタグがあります。

于 2012-08-07T18:39:27.067 に答える