我是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
方法获取文本,但是我愿意接受建议。
答案 0 :(得分:1)
您需要使用协议和委托模式。在这种模式下,您将数据从tableviewcell传递回视图控制器。
看一下本教程