我一直在反對這個好幾天了,嘗試了許多不同的方法。我有一個包含兩個UILabels的自定義單元的UITableView。在選擇單元格時,會顯示一個UIPicker,並且會設置一個引用了哪個單元格的變量。使用選定的UIPicker行作爲自定義UITableViewCell的文本UILabel SWIFT
一旦在UIPicker中進行了選擇,我需要獲取該值並用它來替換其中一個單元格標籤的現有.text。我已經嘗試使用.viewWithTag幾種不同的方式(首先標籤標籤本身,然後整個單元格),沒有任何工作。
我didSelect的選擇器是:
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
println("pickerView did select row \(row)")
if(self.getStatus() == "newFirst"){
switch (editingField){
case 0:
var l:NewOrderCell! = tableView.viewWithTag(editingField) as? NewOrderCell
//the label in the custom cell is called 'Text'
l.Text.text = pickerData[row]
println("should be changing \(l.Text.text) into \(pickerData[row])")
default:
var l:NewOrderCell! = tableView.viewWithTag(editingField) as? NewOrderCell
l.Text.text = pickerData[row]
}
}
picker.hidden=true
}
和我對錶的cellForRowAtIndexPath是:
var cell:NewOrderCell = tableView.dequeueReusableCellWithIdentifier("NewOrderCell") as NewOrderCell
//label
cell.Label.text = self.newOrder[indexPath.row]
//text
cell.Text.text = "Please Select"
cell.tag = indexPath.row
return cell
我知道我的目標,但在適當的方式不能獲得一個句柄從另一種方法引用表格中的單元格。感謝您的幫助
你嘗試使用委託?您可以子類UIPicker,在該類中定義協議並在您的tableview中實現這些協議功能。將subClassed UIPIcker的委託設置爲tableview,並在table view類中實現一個以文本和單元索引作爲輸入並更新相同的函數。如果您想要代碼,請回複評論。 – 2015-04-02 05:09:23