无法在Tableview自定义单元格中获取文本字段文本

时间:2018-07-06 21:51:25

标签: ios swift uitableview custom-cell

我是iOS的新手,正在尝试构建一个应用程序。在应用程序中,我编写了一个tableview,该表具有包含图像和文本字段的自定义单元格。用户在文本字段中输入名称(例如玩家名称),然后我需要将这些名称传递给另一个视图控制器。我正在尝试获取这些名称,但我不能。有人可以帮我解决这个问题吗? 这是我的代码:

在tableview控制器类中:

var playerCount : Int = 0
var playerNumber = 0
var tempPlayers: [Player] = []

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return Int(playerCount)
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cellForPlayer", for: indexPath) as! PlayerInformationCellTableViewCell

    cell.txtPlayerName.placeholder = "Oyuncu \(playerNumber + 1)"
    playerNumber = playerNumber + 1
    cell.textFieldDidEndEditing(cell.txtPlayerName)
    tempPlayers.append(cell.tmpPlyer)
    return cell
}

自定义单元格类别:

var playerNames: [Player] = []
var tmpPlyer = Player(name:"",point: 0)

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    txtPlayerName.delegate = self
    usrImgView.image = #imageLiteral(resourceName: "avatar")
    txtPlayerName.backgroundColor = UIColor.flatWhite
    txtPlayerName.layer.cornerRadius = 5
    txtPlayerName.textAlignment = .center
}

func textFieldDidEndEditing(_ textField: UITextField) {
    if(txtPlayerName.text != nil ){
       // var tempPlayer = Player(name: txtPlayerName.text!,point: 0)
        //playerNames.append(tempPlayer)
        tmpPlyer = Player(name: txtPlayerName.text!,point: 0)
    }
}

我正在尝试使用didEndEditing方法获取文本,但是我愿意接受建议。

1 个答案:

答案 0 :(得分:1)

您需要使用协议和委托模式。在这种模式下,您将数据从tableviewcell传递回视图控制器。

看一下本教程

https://medium.com/@aapierce0/swift-using-protocols-to-add-custom-behavior-to-a-uitableviewcell-2c1f09610aa1