2013-03-20 53 views
0

我有兩個數組。每個數組獲取一個部分。當用戶滑動該行並選擇刪除時,它必須刪除右側部分中的相應行。如何更改我的代碼以在正確的部分刪除它。 這是我的代碼到目前爲止。如何在特定區域中刷卡刪除一行

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     //remove the deleted object from your data source. 
     //If you're data source is an NSMutableArray, do this 
     if (self.numberOfSections == 1) 
     { 
      [self.playerNames removeObjectAtIndex:indexPath.row]; 
     } 
     else 
     { 
      //code here needs to determine which section needs to be deleted 
     } 
     [self.tableView reloadData]; 
    } 
} 
+2

再次什麼是你的問題? – Peres 2013-03-20 07:58:24

回答

3

嘗試改變

if (self.numberOfSections == 1) 

到:

if (indexPath.section == 1) 

希望它能幫助。

+0

謝謝。它確實有幫助。我正在尋找if(indexPath.section == 1),儘管我必須保留if(self.numberOfSections == 1),因爲它確定是否有一個節或多個節。 – user1898829 2013-03-20 08:20:06

+0

@ user1898829不客氣。接受也會很好。我不知道你想保留'(self.numberOfSections == 1)'而沒有看到完整的代碼(或更好的問題結構)。 – Novarg 2013-03-20 15:40:17

+0

對不起,遲到接受 – user1898829 2013-05-03 08:50:31

1

下面是一些代碼片段:

-(void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath { 
} 

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
    forRowAtIndexPath:(NSIndexPath *)indexPath { 
    // If row is deleted, remove it from the list. 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
      NSInteger row = [indexPath row]; 
      [tableDataSource removeObjectAtIndex:row];  
      [tableView reloadData]; 
    } 
} 

也可參考此Apple Documentation

+0

請看下面我的解決方案,看看它是否可以改進,並與您的答案集成。 – user1898829 2013-03-20 08:43:29

+0

它看起來很好.. – Mrunal 2013-03-20 08:59:48

0
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     //remove the deleted object from your data source. 
     //If you're data source is an NSMutableArray, do this 
     if (self.numberOfSections == 1) 
     { 

      [self.playerNames removeObjectAtIndex:indexPath.row]; 
     } 
     else 
     { 
      if (indexPath.section == 0) 
      { 
       [self.team1 removeObjectAtIndex:indexPath.row]; 
      } 
      else 
      { 
       [self.team2 removeObjectAtIndex:indexPath.row]; 
      } 
     } 
     [self.tableView reloadData]; 
    } 
}