繁体   English   中英

iOS/Obj-C - 在视图控制器中的一个 tableview 上实现 UITableViewCellEditingStyleDelete?

[英]iOS/Obj-C - Implement UITableViewCellEditingStyleDelete on one tableview in View Controller?

我在一个视图控制器中有三个表视图(它们的可见性由段控件控制)。 也就是说,我只希望单元格可以选择从 self.friendsView 中删除,而不是其他 tableviews。 我的视图控制器中有以下代码,但是在我的所有三个 tableview 上都可以看到滑动和删除单元格的功能,而不仅仅是 self.friendsView。 我怎样才能解决这个问题?

 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (tableView == self.friendsView) {
        if (editingStyle == UITableViewCellEditingStyleDelete) {
            // Delete the row from the data source

            NSMutableDictionary *nodeData = [[self.myFriendData objectAtIndex:indexPath.row] mutableCopy];

            NSString *nid = [nodeData objectForKey:@"nid"];
            [nodeData setObject:nid forKey:@"nid"];
            NSLog(@"%@",nid);

            [self.myFriendData removeObjectAtIndex:indexPath.row];

            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];



            [DIOSNode nodeDelete:nodeData success:^(AFHTTPRequestOperation *operation, id responseObject) {
                NSLog(@"node deleted!");
            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"could not delete node!");
            }];
        }
    }
}

除了实现commitEditingStyle之外,您还需要实现editingStyleForRowAtIndexPath委托方法。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == self.friendsView) {
        return UITableViewCellEditingStyleDelete;
    } else {
        return UITableViewCellEditingStyleNone;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM