2011-05-16 184 views
1

在我的uitableview中,當用戶設置編輯模式並嘗試刪除一行時,我會做一些驗證以檢查該行是否可以刪除。如果不是,我想將行重置爲之前的狀態,即沒有右側的刪除按鈕,而只是左側的負水平按鈕。uitableview重置刪除按鈕

我將使用哪種方法來完成上述操作?

回答

2

試試這個代碼,

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

if(fails) 
{ 
    [self.tableView reloadData]; 
    [super setEditing:YES animated:YES]; 
    [self.tableView setEditing:YES animated:YES]; 
} 
-1

KingofBliss的回答會完成這項工作,然而,這是一個更具體一點。這種方法將動態重置刪除確認,並實質上「點擊」刪除編輯控件(重置確認的操作)。

UITableViewCell *cell = [self.detailsTableView cellForRowAtIndexPath:indexPath]; 
[cell.subviews enumerateObjectsUsingBlock:^(UIView *subview, NSUInteger index, BOOL *stop){ 

     if([subview isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]) 
     { 
       UIControl *editControl = (UIControl *)subview; 
       [editControl sendActionsForControlEvents:UIControlEventTouchUpInside]; 
     } 

}];

0

這將重置您需要重置的單元格。

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(fails) 
    { 
     [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 
    } 
}