多选数组。

时间:2016-02-29 08:12:02

标签: objective-c iphone arrays uitableview

我的问题是我将玩家从数据库加载到UITableView,我想将这些玩家存储在Array中,但我提供了多种选择。接下来我想将此信息保存到DB。我已经完成了数据库层,所以只需要了解如何将这个多个选定的播放器存储到数组中。

1 个答案:

答案 0 :(得分:0)

- (void)viewDidLoad
{
   [super viewDidLoad];

 // Do any additional setup after loading the view, typically from a nib.
 self.cellSelected = [NSMutableArray array];
 self.selectedItems = [NSMutableArray array];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
   //Cell Initialisation here

if ([self.cellSelected containsObject:indexPath])
{
  cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
  cell.accessoryType = UITableViewCellAccessoryNone;

}
 return cell;
}


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

[tableView deselectRowAtIndexPath:indexPath animated:YES];
//if you want only one cell to be selected use a local NSIndexPath property instead of array. and use the code below

//self.selectedIndexPath = indexPath;

//the below code will allow multiple selection
if ([self.cellSelected containsObject:indexPath])
{
  [self.cellSelected removeObject:indexPath];
  [self.selectedItems removeObject:[self.selectedItems indexOfObject:[self.dataArray objectAtIndex:indexPath.row]]];
}
else
{
   [self.cellSelected addObject:indexPath];
   [self.selectedItems addObject:[self.dataArray objectAtIndex:indexPath.row]];
}
[tableView reloadData];
}

您的数据阵列保存数据库中的数据(整个玩家信息)。 selectedItems数组包含所选播放器信息的详细信息。 希望这会有所帮助:)