У меня есть следующий код в моем методе didSelectRowAtIndexPath: и я хочу, чтобы пользователь мог нажать на ячейку, показать ячейку флажка и добавить выбранные ячейки в отдельный массив. Я также хотел бы, чтобы пользователь мог использовать уже выбранную ячейку, которая затем уберет галочку и удалит ее из массива.Выбор ячеек и их перемещение в отдельный массив?
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.setupTable deselectRowAtIndexPath:indexPath animated:YES];
SetupCell *cell = (SetupCell*)[tableView cellForRowAtIndexPath:indexPath];
NSLog(@"Feed name: %@", cell.setupFeedName.text);
if ([self.selectedCells containsObject:cell.setupFeedName.text]) {
[self.selectedCells removeObjectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
[self.selectedCells addObject:cell.setupFeedName.text];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
[self.setupTable reloadData];
NSLog(@"%i cells are selected.", [self.selectedCells count]);
NSLog(@"%i cells are not selected.", [self.setupFeeds count]);
}
NSLog выводит следующее:
2013-08-12 07:04:58.767 [13921:c07] Feed name: Politico
2013-08-12 07:04:58.768 [13921:c07] 0 cells are selected.
2013-08-12 07:04:58.769 [13921:c07] 6 cells are not selected.
ОБНОВЛЕНИЕ:
Вот что показывает консоль:
2013-08-12 07:31:40.390[14117:c07] Feed name: Huffington Post
2013-08-12 07:31:40.392[14117:c07] 5 cells are selected.
2013-08-12 07:31:40.392[14117:c07] 6 cells are not selected.
Вот код:
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.setupTable deselectRowAtIndexPath:indexPath animated:YES];
SetupCell *cell = (SetupCell*)[tableView cellForRowAtIndexPath:indexPath];
NSLog(@"Feed name: %@", cell.setupFeedName.text);
if ([[self.selectedCells objectAtIndex:indexPath.row] isEqualToString:cell.setupFeedName.text]) {
[self.selectedCells removeObjectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
[self.selectedCells addObject:cell.setupFeedName.text];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
NSLog(@"%i cells are selected.", [self.selectedCells count]);
NSLog(@"%i cells are not selected.", [self.setupFeeds count]);
[self.setupTable reloadData];
}
Попробуйте NSLog Перед перезагрузкой. и в чем именно проблема? –
Тогда что происходит в вашем случае? – Ashwani
Вы инициализируете self.selectedCells? если да, то где? – iProgrammer