【问题标题】:How to get the cell.textLabel.text from the selected cell in DetailViewController?如何从 DetailViewController 中的选定单元格中获取 cell.textLabel.text?
【发布时间】:2010-02-22 16:31:06
【问题描述】:
我有一个包含多个条目的 UITableView,它们被分成几个部分。如果我单击其中一个单元格,则会访问 DetailViewController。在那个 DetailViewController 中,我想使用来自所选单元格(cell.textLabel 和 cell.detailTextLabel)的数据,但我无法访问这些数据。
是否有可能解决该问题,以便我可以使用 DetailViewController 从所选单元格中访问 textLabels?
【问题讨论】:
标签:
ios
iphone
tableview
viewcontroller
【解决方案1】:
一种方法是为 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];
}
【解决方案2】:
用单元格内容初始化DetailViewController。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
DetailViewController *detailViewController = [[[DetailViewController alloc] initWithText:cell.textLabel.text] autorelease];
// push
}
与其让孩子从其父母那里阅读,不如让父母直接向其孩子提供信息。