0

我很确定这真的很简单。但我无法完成这项工作。我有一个 UITableView,我在其中动态显示 facebook 朋友的列表,这要归功于他们的 FBID。基本上,我想在一个用逗号分隔的字符串中返回我选择的朋友的 FBID。如果可能的话,在 IBAction 中,这样我就可以将它们传递给 php.ini 的参数。例如,假设我有 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);


}

提前谢谢你,我相信这并不复杂。

4

3 回答 3

6
-(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
}
于 2013-05-11T01:51:16.153 回答
1

问题是您没有使用indexPathsForSelectedRows. 那就是告诉您所有选定的行。相反,您只是查看最近选择的indexPath.row一行

您需要做的是循环indexPathsForSelectedRows并收集当前选择的每一行的信息(我假设您已在此处启用多项选择)。

于 2013-05-11T01:47:20.883 回答
1
    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.
于 2016-04-19T07:50:22.750 回答