我现在有一个应用程序,它有一个包含从数组加载的多个单元格的表视图。我在文本视图中分隔文本,将文本分成随后添加到数组中的组件。从那里我将每个单元格的文本标签设置为数组中的每个组件。所以我有一些看起来像这样......
我希望能够选择一个单元格并突出显示单元格,然后我希望能够单击右侧的其中一个按钮。当我单击一个按钮时,它会获取该单元格的文本标签并将其作为组件存储在数组中。
我不知道如何编写“获取所选单元格的文本标签并将其存储为组件”的代码。有没有办法检测细胞是否被选中?
答案 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)
更好的方法是从数组中提取数据到表视图并将其放在另一个数组中。我会称他们为sourceArray
和destinationArray
。
- (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];
}
希望这有帮助!