单击按钮时,将选定的单元格文本标签添加到阵列

时间:2012-09-06 04:04:10

标签: objective-c ios xcode

我现在有一个应用程序,它有一个包含从数组加载的多个单元格的表视图。我在文本视图中分隔文本,将文本分成随后添加到数组中的组件。从那里我将每个单元格的文本标签设置为数组中的每个组件。所以我有一些看起来像这样......

enter image description here

我希望能够选择一个单元格并突出显示单元格,然后我希望能够单击右侧的其中一个按钮。当我单击一个按钮时,它会获取该单元格的文本标签并将其作为组件存储在数组中。

我不知道如何编写“获取所选单元格的文本标签并将其存储为组件”的代码。有没有办法检测细胞是否被选中?

2 个答案:

答案 0 :(得分:1)

您需要使用NSMutableArray来实现此功能,因为您可以动态添加和删除对象:

- (void)viewDidLoad
{
    [super viewDidLoad];
    myMutableArray = [[NSMutableArray alloc] init];
}

- (void)myButtonClicked
{
    NSMutableArray *myMutableArray;
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[self.tableView indexPathForSelectedRow]];
    if ([myMutableArray containsObject:cell.textLabel.text]) {
        [myMutableArray removeObject:cell.textLabel.text];
    }else{
        [myMutableArray addObject:cell.textLabel.text];
    }
}

答案 1 :(得分:1)

更好的方法是从数组中提取数据到表视图并将其放在另一个数组中。我会称他们为sourceArraydestinationArray

- (IBAction)buttonAction:(id)sender {
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    NSString *string = [self.sourceArray objectAtIndex:indexPath.row];
    [self.destinationArray addObject:string];
}

我怀疑indexPathForSelectedRow方法是您正在寻找的方法。如果您仍需要使用标签文本,请修改处理程序,如下所示:

- (IBAction)buttonAction:(id)sender {
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    UITableViewCell *selectedCell = [self.tableView cellForRowAtIndexPath:indexPath];
    NSString *string = selectedCell.textLabel.text;
    [self.destinationArray addObject:string];
}

希望这有帮助!