从UITableViewCell将对象添加到数组中

时间:2016-08-11 13:13:31

标签: ios objective-c uitableview

这里我需要实现将对象添加到数组中以进行多行选择,这是我的代码

BOOL selectedRow

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

if(selectedRow){
 UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
            cellText = selectedCell.textLabel.text;
            NSLog(@"Airline cellTextC = %@",cellText);

if ([cellText isEqualToString:NameString]) {
                NSLog(@"Selected NameString Index = %@",indexes);

                [nameArray addObject:indexes];

            }else{
                NSLog(@"Unknown Selected Name");
            }

}
NSLog(@"Total Names  = %@",nameArray.description);

}

上面的代码中有一个部分和多个行,如果选中,name string行应该添加到Array。只有在选择一行时才能正常工作。但是我需要添加来自多行选择的对象。请你建议我谢谢。

3 个答案:

答案 0 :(得分:0)

您可能希望更新Table View的数据源,并让Table View Data源方法为您更新Table View。

答案 1 :(得分:-1)

检查这是否可以解决您的问题:

[tableView setAllowsMultipleSelection:YES];

答案 2 :(得分:-1)

如果你想选择多行并向你的数组添加对象我建议创建2 NSMutableArray,第一个包含所有数据,另一个包含所选行数据。

@property (strong , nonatomic) NSMutableArray *myalldatatab;
@property (strong , nonatomic) NSMutableArray *selecteddata;

然后使用didselectrowsatindexpath和didDeselectRowAtIndexPath来改变标记

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
}

您可以通过调用以下行来获取所选行的索引:

NSArray *selectedCells = [self.tableView indexPathsForSelectedRows];

您现在可以迭代选定的单元格并添加像这样的对象

for (int i = 0; i < [selectedCells count]; i++)
        {
[self.selecteddata addObject: [selectedCells objectAtIndex:i]]
}

希望它能帮到你:))开心c0de !!