我有一个由json webservice url填充的表视图。我使用“UITableViewCellAccessoryCheckmark”作为刻度线。当用户多选择tableview时,我希望所有选中的行数据都存储在一个变量中。你能不能帮帮我。下面是代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
if ([self.arForIPs containsObject:indexPath]) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else {
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
NSString *imagefile1 = [media1 objectAtIndex:indexPath.row];
cell.textLabel.text=[story objectAtIndex:indexPath.row];
cell.detailTextLabel.text=[descriptiondesc objectAtIndex:indexPath.row];
cell.detailTextLabel.numberOfLines=2;
//cell.detailTextLabel.backgroundColor=[UIColor clearColor];
img=[UIImage imageNamed:@"icon.png"];
cell.imageView.image=img;
NSLog(@"BOOMMMM:%@",pileup);
return cell;
}
答案 0 :(得分:3)
如果您启用了多选,则应该能够使用UITableView的indexPathsForSelectedRows
来获取所选行的所有索引。有了这个,您可以返回从服务器下载的原始数据,并获得所需的字符串。
您可以在tableView:didSelectRowAtIndexPath:
内使用它来构建所有当前所选行的字符串。
编辑: 要将几个关联数据存储在一起,您可以使用NSDictionary(或NSMutableDictionary,如果您需要在创建后编辑它)。 例如,对于您的代码,要存储一行的所有数据:
NSMutableDictionary * dict = [[NSMutableDictionary alloc] initWithCapacity:3];
[dict setObject:[media1 objectAtIndex:indexPath.row] forKey:@"image"];
[dict setObject:[story objectAtIndex:indexPath.row] forKey:@"story"];
[dict setObject:[descriptiondesc objectAtIndex:indexPath.row] forKey:@"desc"];
或者您可以将其直接创建为常规NSDictionary,请参阅此处:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdictionary_Class/Reference/Reference.html