UITableViewCell: Как мне обновить textLabel.text в пятой строке? - PullRequest
6 голосов
/ 22 ноября 2011

Я создал и выполнил UITableViewCell.Я хочу обновить textLabel.text в пятой строке, когда я нажал кнопку UINavigationButton.Как я могу это сделать?

UITableViewCell *cell;
cell = [tableView_ dequeueReusableCellWithIdentifier:@"any-cell"];
if(cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"any-cell"] autorelease]; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = leftString;

Ответы [ 2 ]

15 голосов
/ 22 ноября 2011

Прямой путь есть,

NSIndexPath *fifthRow = [NSIndexPath indexPathForRow:4 inSection:0];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:fifthRow];
cell.textLabel.text = @"the updated text";

Но лучший способ - обновить источник данных и перезагрузить tableView или только строку.

0 голосов
/ 22 ноября 2011

Вы можете указать UITableView обновить эту строку (с reloadRowsAtIndexPaths:withRowAnimation:) в методе, который обрабатывает изменения кнопки.

Тогда у вас есть особый случай в вашем UITableViewDataSource методе cellForRowAtIndexPath:.

РЕДАКТИРОВАТЬ: я удалил этот ответ, увидев ответ @ EmptyStack, который выглядел хорошо для меня. Возможно, этот ответ покроет его предложение об обновлении источника данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...