在TableView协议之外更改UITableViewCell.detailTextLabel

时间:2012-06-25 12:34:59

标签: iphone uitableview tableview

我有一个包含3个单元格的tableView。

我想在tableView加载后更改该单元格的.detailTextLabel。

我怎么能这样做?

我是三合一的:

  

UITableViewCell * firstCell = [tableView cellForRowAtIndexPath:0];

     

firstCell.detailTextLabel.text = @“ABC”;

     

[tableView reloadData];

但这并非无所作为。有什么问题?

3 个答案:

答案 0 :(得分:1)

而不是

UITableViewCell *firstCell = [tableView cellForRowAtIndexPath:0];

使用

UITableViewCell *firstCell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

答案 1 :(得分:0)

试试这个:

UITableViewCell *firstCell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

firstCell.detailTextLabel.text = @"ABC";

无需调用reloadData。

答案 2 :(得分:0)

当你说

[tableView reloadData];

那个时候你的: -

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

方法将被调用三次,因为您的行中有3个单元格,这将再次覆盖您的firstCell.detailTextLabel.text,其中包含您必须通过数组提供的原始文本...

所以如果您正在使用数组..那么您需要更改该数组中的对象以获取所需的索引。

实现这个:

[array replaceObjectAtIndex:0 withObject:@“Change”];

[tableViewCategory reloadData];

希望这对你有用......