我有一个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文本正在改变时调用的。但是,一旦我进行编辑(例如重新排列一行),它就会停止工作
答案 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];
}