【发布时间】:2018-07-07 13:14:09
【问题描述】:
我是 iOS 新手,我正在尝试构建一个应用程序。在应用程序中,我编写了一个表格视图,该表格具有包含图像和文本字段的自定义单元格。用户在文本字段中输入名称(如玩家名称),然后我需要将这些名称传递给另一个视图控制器。我想得到这些名字,但我做不到。谁能帮我解决这个问题? 这是我的代码:
在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 方法获取文本,但我愿意接受建议。
【问题讨论】:
-
您可以使用委托模式让单元格将文本传递回视图控制器,在那里它可以更新其数据模型。像这样stackoverflow.com/questions/28659845/…
-
我无法按照此说明进行操作 :( 很遗憾我是 IOS 新手,但我会非常感谢@Paulw11 :) 祝您有美好的一天
-
是 textFieldDidEndEditing 这个函数调用吗?如果不需要,你需要给委托方法。
-
@HardikThakkar 感谢您的帮助,但我通过使用委托和协议解决了这个问题
标签: ios swift uitableview custom-cell