2015-11-19 25 views
0

我向我的UIViewController添加了一個表格視圖。然後我在表格視圖中添加了一個標籤到我的自定義單元格中。我試圖通過使用標籤來更新tableview中的標籤。似乎它不工作。使用UIViewController裏面的tableView標籤來更新標籤

這是我的代碼。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) 
    let object = lineItemsObject[indexPath.row] 
    //cell.textLabel?.text = object["quantity"] 

    print(object["description"]!) 

    if let descriptionLabel = cell.viewWithTag(500) as? UILabel { 
     descriptionLabel.text = object["description"] 
    } 
    else 
    { 
     print("fail") 
    } 

    return cell 
} 

當我調用該函數時,它總是不讀取標籤並打印「失敗」。我也爲我的標籤分配了正確的標籤值。

在這裏,我附上我的標籤細節的圖像屬性檢查器中 enter image description here

請幫我解決這個問題。

+1

您的代碼看起來不錯。我用一個測試項目檢查它,它工作正常。 試試這個: 刪除表格視圖附帶的單元格。從對象瀏覽器中拖放一個新的單元格,現在添加一個標籤,設置它的標籤,然後設置單元標識符並嘗試。 – TheAppMentor

回答

1

你的細胞不知道你的標籤裏面(500標籤)。您不提供自定義單元格,因爲此行:

let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) 

這是一個預定義的單元格。在文檔中,您可以使用預定義的單元格或自定義的單元格(通過繼承UITableViewCell):

「創建單元格時,可以自定義它們或使用幾種預定義樣式之一,預定義的單元格樣式是最簡單的選項。在預定義的樣式中,單元格提供標籤和圖像子視圖,其位置和樣式是固定的。要設置單元格的文本和圖像,請使用textLabel,detailTextLabel和imageView屬性。

  1. 如果你想要去的預定義: 如果你想只是把文本到電池中使用(我認爲這是一個評論第一名)。

    cell.textLabel?的.text =對象[ 「數量」]

  2. 轉到定製

擴展的UITableViewCell在一個單獨的文件迅速。在這裏做你的綁定,並與你的故事板並行工作。將自定義類分配給您的單元格。此外,更改出列:

let cell: MyCustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) as! MyCustomTableViewCell 
+0

我修改了你提到的行,並刪除表視圖的註冊UITableViewCell類的代碼行。現在它工作正常 –

+0

我很高興它的工作原理! –

2

由於@TheAppMentor表示代碼看起來很好。確保你輸入了正確的單元標識符。然後確保你將視圖控制器連接到正確的類(這是我的常見錯誤)。還要確保這個單元格中的其他東西沒有相同的標籤。您也可以打印所有子視圖來檢查裏面的內容。

+0

我驗證了你提到的所有內容。但不起作用。以及我打印的子視圖。有三個UITableViewCellContentViews。 –

+0

在這裏,我已經爲該表註冊了類UITableViewCell。我刪除它,現在它工作正常 –