UITableView编辑无效

时间:2011-05-26 04:08:43

标签: iphone uitableview uipopovercontroller edit

我有一个UITableView,它位于一个位于popover中的NavigationController中。所以,我把一个编辑/完成的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文本正在改变时调用的。但是,一旦我进行编辑(例如重新排列一行),它就会停止工作

2 个答案:

答案 0 :(得分:3)

好的,

我似乎调用了[tableView beginUpdates]并且从未调用过endUpdates,这导致所有更新都没有注册。如果其他人这样做......

答案 1 :(得分:0)

- (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];
}