2011-05-26 136 views
2

我有关键在于NavigationController是在酥料饼的一个UITableView。于是,我把一个编辑/完成UIToolBarItem工作正常,你可以看到删除附件图标显示出来。然而,当我重新排列物品,编辑/完成按钮停止工作......UITableView的编辑不工作

我调试,它仍然被调用,但它似乎并没有更新,并排序阻止其他按钮的任何进一步的更新。这可能是模拟器的问题吗?

感谢提前的帮助!

编辑:添加代码

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

第二部分绝对称得上为Add按钮文本正在发生变化。但是,它停止工作,一旦我做了编辑(如重新安排行)

+0

请张贴一些代码 – iProgrammer 2011-05-26 05:02:43

回答

3

好吧,

我似乎叫[的tableView beginUpdates],从来没有叫endUpdates,这是导致所有更新不被注册。如果其他人这样做...

+1

哇。这里同样的错误。那真是愚蠢。感谢您的洞察力。 =) – goatlinks 2013-05-20 19:42:58

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