DetailViewControllerで選択したセルからcell.textLabel.textを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2312357

質問

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

役に立ちましたか?

解決

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];
}

他のヒント

を初期化します DetailViewController セルの内容とともに。

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

子が親から情報を読み取るのではなく、親が子に直接情報を提供する方がはるかにすっきりします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top