2014-07-04 74 views
0

我正在使用UITableViewController,我想要滑動刪除單元格。已連接到dataSource和委託。滑動UITableViewCell刪除不UITableViewController中的commitEditingStyle

它隨機檢測, 有時控制檯打印

attempting to set a swipe to delete cell when we already have one....that doesn't seem good 

他是我的代碼,

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return YES; 
} 
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewCellEditingStyleDelete; 
} 


-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 

    } 
} 

編輯

我cellForRow AtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kFavouriteCell forIndexPath:indexPath]; 

    [self customizeFavouriteCell:cell withIndexPath:indexPath]; 
    return cell; 
} 
+0

仔細檢查你的方法的簽名應該是完全一樣的。 – NeverHopeless

+0

@NeverHopeless:是的。 –

+0

你可以向我們展示cellForRowAtIndexPath的代碼嗎? – NeverHopeless

回答

0

您需要刪除單元格的數據並刪除單元格。使用deleteRowsAtIndexPaths:withRowAnimation:

這裏面協議功能:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // ... delete data here ... 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 
    } 
} 

讓我知道,如果你有這樣做要麼它們的更具體的問題。

+0

當刷卡沒有調用「commitEditingStyle」方法 –

+0

它應該是,特別是如果您使用TableViewController。這可能聽起來很愚蠢,但是你看起來像你發佈的代碼嗎? – Oxcug

0

您可以使用此:

- (void)tableView:(UITableView *)tableView commitEditingStyle:     
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
if (editingStyle == UITableViewCellEditingStyleDelete) { 
//add code here for when you hit delete  
} 
} 
+0

這與上述答案相同。 –

相關問題