2011-05-26 183 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]; 
}