我是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方法获取文本,但我愿意接受建议。

最佳答案

您需要使用协议和委托模式。在此模式中,您将数据从tableviewcell传递回视图控制器。
看看这个教程
https://medium.com/@aapierce0/swift-using-protocols-to-add-custom-behavior-to-a-uitableviewcell-2c1f09610aa1

关于ios - 无法在TableView自定义单元格中获取文本字段文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51218041/

10-14 21:26
查看更多