微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UITableView编辑不起作用

如何解决UITableView编辑不起作用

| 我有一个UITableView,它位于弹出窗口中的NavigationController中。因此,我放置了一个可以正常工作的edit / done UIToolBarItem,您可以看到显示删除附件图标。但是,当我重新排列项目时,“编辑/完成”按钮将停止工作... 我进行了调试,但仍然可以调用它,但它似乎没有更新,并且可以防止其他按钮进行任何进一步的更新。模拟器可能有问题吗? 我在这里先向您的帮助表示感谢! 编辑:添加代码
addButton = [[UIBarButtonItem alloc] initWithTitle:@\"Edit\" style:UIBarButtonItemStyleBordered     target:self action:@selector(editTable:)];
然后在方法上:
- (IBAction) editTable: (id) sender
{
    if ([[addButton title] isEqualToString:EDIT_STRING]) {
        [addButton setTitle:DONE_STRING]; //enabling edit mode  
        [super setEditing:YES animated:YES];
        [[self tableView] setEditing:YES animated:YES];
    }
    else {
        [addButton setTitle:EDIT_STRING]; //done with editing
        [[self tableView] setEditing:NO animated:YES];
        [super setEditing:NO animated:YES];

        [[self tableView] setNeedsdisplay];
        [[self tableView] reloadData];  
    }
}
第二部分肯定会随着addButton文本的更改而调用。但是,一旦我进行了修改(例如重新安排一行),它就会停止工作     

解决方法

好的, 我似乎已经调用了[tableView beginUpdates],而从未调用过endUpdates,这导致所有更新均未注册。如果有人这样做...     ,
- (void)tableView:(UITableView *)tableview commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [self.tv deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        [self.tv reloadData];
    }
}

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tv setEditing:editing animated:YES];
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。