我是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/