0

いくつかのエントリを持つUITableViewがあり、これらはいくつかのセクションに分かれています。セルの1つをクリックすると、DetailViewControllerにアクセスします。そのDetailViewControllerで、選択したセル(cell.textLabelおよびcell.detailTextLabel)のデータを使用したいのですが、これらにアクセスできません。DetailViewControllerを使用して、選択したセルからtextLabelsにアクセスできるように、問題を解決する可能性はありますか?

4

2 に答える 2

2

1つの方法は、2つのテキスト値のプロパティをDetailViewControllerに追加することです。次に、didSelectRowAtIndexPathで、次のようにします。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    //create your DetailViewController here
    UIViewController *detailViewController = ...

    //set the properties...        
    detailViewController.cellText = cell.textLabel.text;
    detailViewController.cellDetailText = cell.detailTextLabel.text;

    //push the detailViewController here

    [detailViewController release];
}
于 2010-02-22T16:52:23.907 に答える
0

DetailViewControllerをセルの内容で初期化します。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    DetailViewController *detailViewController = [[[DetailViewController alloc] initWithText:cell.textLabel.text] autorelease];
    // push
}

子が親から読み取る代わりに、親が子に直接情報を提供する方がはるかにクリーンです。

于 2010-02-22T17:01:40.623 に答える