UITableViewCellAccessoryCheckmark多选/检测哪些细胞被选中?

时间:2013-08-11 21:32:35

标签: iphone uitableview sdk cell

我有一个UITableView,显示启用了UITableViewCellAccessoryCheckmark选项的UITableView单元格。我想让用户根据自己的喜好选择多个单元格,完成后,按“完成”按钮。

然而,当按下“完成”按钮时,我需要能够将所选对象从UITableView数组添加到单独的数组中。

cell.accessoryType = UITableViewCellAccessoryCheckmark;

回顾一下:用户可以根据需要选择多个单元格。完成后,他们按下UIButton,然后将所选单元格添加到另一个数组。

提前感谢您的帮助!

更新

   -(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [self.setupTable cellForRowAtIndexPath:indexPath];

    [self.selectedCells removeObject:[self.setupFeeds objectAtIndex:indexPath.row]];
    cell.accessoryType = UITableViewCellAccessoryNone;

    [self.setupTable deselectRowAtIndexPath:indexPath animated:YES];
}

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self.setupTable cellForRowAtIndexPath:indexPath];

    [self.selectedCells addObject:[self.setupFeeds objectAtIndex:indexPath.row]];
    cell.accessoryType = UITableViewCellAccessoryCheckmark;


}

1 个答案:

答案 0 :(得分:3)

您的问题与UITableViewCellAccessoryUITableView无关,因此标题有些误导。

如果我是你,我会将NSMutableArray个选定的单元格作为实例变量或属性。

@property (nonatomic, strong) NSMutableArray *selectedCells;

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Maybe some validation here (such as duplicates etc)
    ...
    [self.selectedCells addObject:indexPath];

}

然后按下完成后,您可以检查此属性以查看选择了哪些单元格。

更新:

//Retrieve cell
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

//UITableViewCell has a textLabel property replace "yourLabel" with that if you have used it. Otherwise you can identify the label by subclassing tableviewcell or using tags.
[self.selectedCells addObject:cell.yourLabel.text]; 

//Then if cell is reselected

[self.selectedCells removeObject:cell.yourLabel.text];