访问tableView SWIFT中的文本字段

时间:2015-05-11 09:38:31

标签: swift tableview segue custom-cell nsindexpath

我有一个tableView。当点击/选择单元格时,单元格向下展开以显示多个资产。一个资产是文本字段。另一个是“提交”按钮。

按下“提交”按钮时,我需要从文本字段访问用户输入。我怎么能这样做?

重要提示:我无法使用didSelectRowAtIndexpath,因为已经选择/展开了单元格。

目前我在customCell上有以下内容:

@IBAction func submitButtonPressed(sender: UIButton) {
    // prepareForSegue is on mainVC
    self.textString = self.textField.text
    println(self.textString) 
 }

在MainVC的“prepareForSegue”中,我有以下内容:

       var cell : CustomCell = self.tableView.dequeueReusableCellWithIdentifier("myCell") as! CustomCell

        let path = self.tableView.indexPathForSelectedRow()!
            println(cell.textField.text)
            self.newText = cell.textString
            self.newInt = self.newText.toInt()

            println(self.newText)
            println(self.newInt)

正确使用以下代码prints(self.textString) 然而, cell.textStringself.newTextself.newInt始终为nil

知道为什么吗?

1 个答案:

答案 0 :(得分:5)

以下是示例代码。

@IBAction func submitButtonPressed(sender: UIButton) {

        // prepareForSegue is on mainVC
            let indexPath = self.tableView!.indexPathForSelectedRow()!
            let selectedCell = self.tableView!.cellForRowAtIndexPath(selectedIndexPath!) as! UICustomCell!//your custom cell class.

            self.textString = selectedCell.textFied.text //textFied is your textfield name.
            println(self.textString) 
 }

对于swift 2,此代码基于行索引

工作
let indexPath = NSIndexPath(forRow: 1, inSection: 0) // This defines what indexPath is which is used later to define a cell
                let selectedCell = sptableViewObj.cellForRowAtIndexPath(indexPath) as! AddBillerTableViewCell!

                self.textFieldTwo = selectedCell.spTextfield.text //textFied is your textfield name.
                print(self.textFieldTwo)