2011-04-18 68 views
1

我已經得到了具有從核心數據填充的UITableView一個iphone項目..用複選標記的UITableView細胞

當選擇一個小區,則用戶被定向到一個新的視圖控制器(見下文代碼線)這顯示有關該單元項的附加信息(從核心數據)

[self presentModalViewController:noteViewController animated:YES] 

我想要做的是能設置在每個單元的兩側某種複選標記來表示任務是否完成的不完整..

我已閱讀t帽子我能做到這一點使用:

UITableViewCellAccessoryCheckmark 

,但我不知道如何實現是目前

didSelectRowAtIndexPath: 

被用來展示模態視圖控制器..

所以基本上我想要知道是否有一種方法可以將單元格附件的狀態從複選標記單獨更改爲無(反之亦然)..從某種意義上說,如果實際複選標記是觸摸的,則會顯示它..並且如果它被觸摸再次,它隱藏它..

任何幫助將不勝感激!

回答

9

您需要從單元格演示文稿中追蹤外部選定的行。這意味着,你的模型(你用來構建單元格的第一個地方)需要跟蹤某種布爾值。一旦你有,你設置accessoryType到正確的類型。

if ([[data objectAtIndex:indexPath.row] isSelected]) { 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 
} else { 
    cell.accessoryType = UITableViewCellAccessoryNone; 
} 

這將是一些邏輯的在你的:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
+0

謝謝你的回覆..我想我有點困惑在我的問題..形式我明白如果一個單元格被選中將顯示/刪除複選標記..但我希望複選標記是獨立的感覺只有當選中複選標記時纔會改變。有沒有辦法做到這一點?我將編輯我的原始帖子 – Ibz 2011-04-18 12:04:16

+0

這不意味着任何時候選擇一個單元格,配件會變成?我不想讓它每次都改變..只有在選中實際複選標記時才改變它..這是可能的嗎? – Ibz 2011-04-18 12:08:20

+0

你能告訴我什麼是你的條件,以及如何實現這個「數據」...謝謝 – swiftBoy 2012-08-10 12:42:32

6
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; 

    if (selectedCell.accessoryType == UITableViewCellAccessoryNone) 
    { 
    selectedCell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
    else 
    if (selectedCell.accessoryType == UITableViewCellAccessoryCheckmark) 
    { 
    selectedCell.accessoryType = UITableViewCellAccessoryNone; 
    } 
    //Do something 
    } 

希望這有助於

UPDATE

這個tutorial會給你一個關於自定義表格視圖單元格的基本信息。 另一個Reference

我認爲this會給你解決方案。

+2

讀取GUI的狀態不是一個好主意:它違背了MVC(Model-View控制器)架構。 – 2011-04-18 12:03:16

+0

請檢查原來的問題..我已經更新了更具體的信息...謝謝你的回答,雖然 – Ibz 2011-04-18 12:11:02

+1

我想你是在談談單元格中的一個自定義按鈕 – visakh7 2011-04-18 12:11:44