所以我试图将数据从一个单元格传递到一个不同的视图控制器,而我确实在内部取回了#34; user3"当我试图把它转移到" user2"我没有任何价值。我试图打印user2并没有收到任何错误。我怀疑它与" func准备"有关。但我无法弄清楚是什么。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return posts.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier:"searchCell", for: indexPath)
as! CustomTableViewCell
cell.titleField?.text = posts[indexPath.row].caption
cell.userUID?.text = posts[indexPath.row].uid
cell.descriptionField?.text = posts[indexPath.row].description
cell.tagsField?.text = posts[indexPath.row].tags
let photoUrl = posts[indexPath.row].photoUrl
let url = URL(string: photoUrl)
cell.SearchImage.sd_setImage(with: url, placeholderImage: nil)
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRow(at: indexPath!)! as! CustomTableViewCell
let currentItem = currentCell.userUID!.text
var user3: String = ""
user3.append(currentItem!)
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationViewController = segue.destination as? userViewController {
destinationViewController.user2 = user3
}
}
}
答案 0 :(得分:1)
我建议忘记didSelectRowAt
并将segue连接到Interface Builder中的原型单元而不是视图控制器。
<击> 撞击>
<击>func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRow(at: indexPath!)! as! CustomTableViewCell
let currentItem = currentCell.userUID!.text
var user3: String = ""
user3.append(currentItem!)
}
击> <击> 撞击>
然后调用prepare(for segue
传递发送者参数
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationViewController = segue.destination as? userViewController,
let cell = sender as? CustomTableViewCell,
let indexPath = tableView.indexPath(for: cell) {
let currentUID = posts[indexPath.row].uid
destinationViewController.user2 = currentUID
}
}
}
始终获取模型(数据源数组)中的数据,而不是视图(单元格)