我敢肯定,这是非常简单的。 但我不能去,使这项工作。 我有一个UITableView其中i动态显示的Facebook好友列表,感谢他们FBID。 基本上,我想回到我选择朋友的FBIDs,用逗号分隔的一个字符串。 如果可能的话,在一个IBAction为,所以我可以将它们传递到一个PHP的参数。 例如,让我们假设我有4个朋友,ABCD列表,以及它们的ID是1,2,3,4。 如果我选择A和C,我想有一个字符串,说1,3。
所有我能够做到的是在同一时间,以显示朋友我选择,一个的ID。 这里是我的代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
rowcount = [[tableView indexPathsForSelectedRows] count];
indexer = [idFriends objectAtIndex:indexPath.row];
aapell = [NSString stringWithFormat:@"%@", indexer];
NSMutableString * arrayIds = [[NSMutableString alloc] init];
[arrayIds appendString:aapell];
NSLog(@"ids: %@", arrayIds);
}
谢谢你在前进,我敢肯定,这并不复杂。
-(IBAction)gatherFBIds
{
NSString *listOfFacebookIDs = @"";
NSArray *indexPathArray = [self.tableView indexPathsForSelectedRows];
for(NSIndexPath *index in indexPathArray)
{
//Assuming that 'idFriends' is an array you've made containing the id's (and in the same order as your tableview)
//Otherwise embed the ID as a property of a custom tableViewCell and access directly from the cell
//Also assuming you only have one section inside your tableview
NSString *fbID = [idFriends objectAtIndex:index.row];
if([indexPathArray lastObject]!=index)
{
listOfFacebookIDs = [listOfFacebookIDs stringByAppendingString:[fbID stringByAppendingString:@", "]];
}
else
{
listOfFacebookIDs = [listOfFacebookIDs stringByAppendingString:fbID];
}
}
NSLog(@"Your comma separated string is %@",listOfFacebookIDs);
//Now pass this list to wherever you'd like
}
问题是,你没有使用信息indexPathsForSelectedRows
。 这是告诉你所有选定行。 相反,你只是在看indexPath.row
,这是最近选择了一行 。
什么,你需要做的是循环indexPathsForSelectedRows
并收集起来用于当前所选的每一行(我假设你已经启用了这里多选)的信息。
Use the following code to get the selected rows in a table view. :)
NSArray *selectedRows=[tableView indexPathsForSelectedRows];
NSMutableArray *rownumberArray=[[NSMutableArray alloc]init];
for (int i=0; i<selectedRows.count; i++) {
NSIndexPath *indexPath = [selectedRows objectAtIndex:i];
NSInteger row = indexPath.row;
NSNumber *number = [NSNumber numberWithInteger:row];
[rownumberArray addObject:number];
}
// rownumberArray contains the row numbers of selected cells.