У меня есть табличное представление в моем приложении, которое имеет 6 строк, от первого до шестого. Пользователь вводит имена игроков и может удалять строки путем прокрутки и нажатия «Удалить». Я столкнулся с проблемой, когда в текстовом поле строки есть текст. Например, я заполняю текстовое поле первых трех строк «Один» - «Три». Если вы удалите строку 3 с надписью «Три», она удалит строку, но текст «Три» в текстовом поле войдет в строку внизу для «Четвертого игрока». Каков наилучший способ исправить это?Удаление содержимого UITextField при удалении строки из UITableView
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"playerCell";
playerCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath];
cell.playerLabel.text = [[_playerNames objectAtIndex:indexPath.row]objectForKey:@"title"];
NSString *test = [NSString stringWithFormat:@"%@", cell.playerNameBox.text];
cell.playerNameBox.tag = indexPath.row;
NSString *key = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
[[NSUserDefaults standardUserDefaults]
setObject:test forKey:key];
return cell;
}
Удаление строки:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[_playerNames removeObjectAtIndex:indexPath.row];
[Table reloadData];
}
}
Количество строк в секции = 6
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return _playerNames.count;
}
Предполагая, что у вас есть собственный класс для вашей ячейки, в методе 'prepareForReuse', установите текстовое поле в' nil'. – bobnoble
Выполнение этого удаления текста в каждом текстовом поле. Есть ли способ просто удалить текст в текстовом поле этой строки? –