这个问题与我之前的问题有点相关
我是iPhone应用程序的新手并尝试使用UITableView
学习JSON
。我跟着this video
学习了。
我使用Stoaryboard创建了相同的示例,并添加了可以添加数据的新屏幕。现在我试图删除数据。所以我所做的就是思考而不是下面的方法,我会在每一行添加按钮,点击后我会删除数据。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
但我不知道如何获取行详细信息以及如何删除。
任何帮助/建议都将不胜感激。
以下是我的屏幕的样子。
UITableViewCell
属于CUSTOM类型。
答案 0 :(得分:2)
使用波纹管代码根据编辑操作删除更新数据模型。
这个波纹管代码只是一个例子,用于热删除或从数组中移除对象以及从表中删除..有关更多信息,请查看我发布链接的教程..
- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[arryData removeObjectAtIndex:indexPath.row];
[tblSimpleTable reloadData];
}
}
或使用此波纹管逻辑与单元格的自定义按钮...
- (IBAction)deleteCustomCellWithUIButton:(id)sender
{
NSIndexPath *indexPath = [yourTableView indexPathForCell:(UITableViewCell *)[[[sender superview] superview] superview]];
NSUInteger row = [indexPath row];
[yourTableView removeObjectAtIndex:row];
[yourTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
有关更多信息,请参阅这些教程...
答案 1 :(得分:1)
您可以在每一行添加一个按钮,并将button.tag
设置为indexPath.row
方法中的cellForRowAtIndex:
。然后,在您的按钮方法中,您可以删除Array
中用于填充UITableView
然后reloadData
答案 2 :(得分:0)
您可以通过多种方式获取单元格的cell或indexPath:
如果你想要使用UIButton的IBAction而不是像这样使用indexPathForRowAtPoint:
-(IBAction)myAction:(id)sender
{
CGPoint location = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *swipeCell = [self.tableView cellForRowAtIndexPath:indexPath];
NSLog(@"Selected row: %d", indexPath.row);
//......
}
OR indexPathForCell
- (void)buttonPressedAction:(id)sender
{
UIButton *button = (UIButton *)sender;
// Get the UITableViewCell which is the superview of the UITableViewCellContentView which is the superview of the UIButton
(UITableViewCell*)cell = [[button superview] superview];
int row = [myTable indexPathForCell:cell].row;
}
我从以下代码中获取了代码: Detecting which UIButton was pressed in a UITableView