委托触发器和普通触发器之间的区别在于从TableViewController获取CustomCell上的UITextField?

时间:2016-03-25 01:02:14

标签: ios swift uitableview swift2

UITableViewCell上有两个UITextField实例。 我想在CustomCell上获取UITextField的文本。 该函数是test()。

模式A是来自UITextField的委托, 模式B是按压细胞功能。

我测试了模式B的工作,但模式A不起作用。 我其实想要A工作, 这是我的问题, 为什么模式A不起作用?

并且,如何从TableViewController获取CustomCell上的UITextField文本?

//Only needed code is written.

protocol CustomTableViewCellDelegate{
    func getInputed(textField: UITextField)
}

class CustomTableViewCell: UITableViewCell , UITextFieldDelegate{
        override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    if myTextField != nil {

        myTextField.delegate = self
        myTextField2.delegate = self
    }
}

    //the session is to end
    func textFieldShouldEndEditing(textField: UITextField) -> Bool {
        if delegate != nil {
            self.delegate?.getInputed(textField)
        }
        return true
    }


}


class TableViewController: UITableViewController, CustomTableViewCellDelegate{

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//Im sure I write like this
    cell.delegate = self

}
    //Pattern A
    func getInputed(textField: UITextField){
        test()
    }

    //Pattern B

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        test()

    }


    func test(){
        self.myTableView.reloadData()
        let cell = myTableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: NSIndexPath(forRow: 0, inSection: 0)) as! CustomTableViewCell
        print(cell.myTextField.text)
        print(cell.myTextField.tag)
        print(cell.myTextField2.text)
        print(cell.myTextField2.tag)

    }

}

1 个答案:

答案 0 :(得分:1)

根据我们在评论/聊天中的讨论,我正在添加答案。 以下列方式修改代码有效:

mysql_*