如何将 UITableViewCell 数据发送到 swift 中的另一个 ViewController?

How to send UITableViewCell data to another ViewController in swift?

我正在尝试从 messageArray 向另一个 UIViewController 发送一条消息,以便我可以加载消息的评论。单击单元格时如何发送消息数据结构?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "messageCell") as? feedMessagesCell else {return UITableViewCell()}


        let message = messageArray[indexPath.row]
        cell.configureCell(content: message.content, userName: message.userName)
return cell

    }  

首先不要guard重复使用单元格。代码不能崩溃。如果是这样,则表明存在设计错误。并使用 API 其中 returns 一个非可选单元格。

let cell = tableView.dequeueReusableCell(withIdentifier: "messageCell", for: indexPath) as! feedMessagesCell

要将数据发送到另一个视图控制器,通过将 table 视图单元格 连接到目标控制器,在 Interface Builder 中创建一个 segue。

prepare(for segue中,发件人是单元格。将 PushFeedDetail 更改为真正的标识符,将 MyDestinationController 更改为真正的 class。在目标控制器中创建一个 message 属性。从单元格中获取索引路径并传递数据源数组中的项目。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "PushFeedDetail" { 
        let selectedIndexPath = tableView.indexPath(for: sender as! feedMessagesCell)!
        let destinationController = segue.destination as! MyDestinationController
        let message = messageArray[selectedIndexPath.row]
        destinationController.message = message
    }
}