2012-05-04 43 views
0

我有4個部分在我的tableview中,當一行被按下時,我想要一個複選標記添加到該行。使用下面的代碼,如果我選擇一行,其他一些行也會被檢查,這是不希望的。我猜這與幾個部分有關,但我不知道如何檢查或修復它。我的_allTagsList是一個包含4個字典的NSMutableArray。didSelectRowAtIndexPath與幾個部分

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSDictionary *dictionary = [_allTagsList objectAtIndex:indexPath.section]; 
    NSArray *array = [dictionary objectForKey:@"Tags"]; 
    NSString *selectedTag = [array objectAtIndex:indexPath.row]; 


    if([tableView cellForRowAtIndexPath:indexPath].accessoryType == UITableViewCellAccessoryCheckmark) 
    { 
     [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone; 
    } 
    else 
    { 
     [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark; 
    } 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

回答

2

您需要存儲選擇哪些indexPaths,然後在你的cellForRowAtIndexPath功能,你需要t結合設置基於這些保存indexPaths的accessoryType。如果您更改單元格中的accessoryType,然後滾動,那麼該單元將被回收,accessoryType將保持檢查狀態。

+0

我不確定那會怎麼做? –

+0

@NielsSønderbæk爲可變數組創建一個屬性,並在視圖加載時實例化它。每當有人選擇一個單元格檢查索引路徑是否已經在數組中,並且是否將其刪除並將單元格設置爲未選中狀態。否則,添加它並設置單元格檢查。然後在索引路徑的行中的單元格中檢查索引路徑是否在數組中,並設置單元格是否被設置爲未檢查。 –

+0

謝謝,它現在的作品:) –