如何将 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
}
}
我正在尝试从 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
}
}