DetailViewControllerで選択したセルからcell.textLabel.textを取得するにはどうすればよいですか?
-
22-09-2019 - |
質問
いくつかのエントリを含む 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
}
子が親から情報を読み取るのではなく、親が子に直接情報を提供する方がはるかにすっきりします。
所属していません StackOverflow