如何使用 iMessage 的全局变量将值从一个自定义单元格传递到另一个视图控制器?

How to pass values from one custom cell to another view controller by using global variables for iMessage?

我正在尝试开发一个 iMessage 应用程序,但我不确定如何将值从自定义单元格传递到另一个视图控制器。我需要确保一旦按下按钮,单元格中的值就会被复制到发送 space 的文本中。请帮帮我!我被困在这里 :

This is the iMessage Code and instead of "hello world" it needs to put the label text from the cell

        let layout = MSMessageTemplateLayout()
        layout.caption = "Hello World"

        let message = MSMessage()
        message.layout = layout

        self.activeConversation?.insert(message, completionHandler: nil)

The part which has the details on the cell in a different view controller

        func configureWithContactEntry(_ contact: ContactEntry) {
        contactNameLabel.text = contact.name
        contactEmailLabel.text = contact.email ?? ""
        contactPhoneLabel.text = contact.phone ?? ""


        return cell

This is the CellForRow code

    let cell = tableView.dequeueReusableCell(withIdentifier: 
    "ContactTableViewCell", for: indexPath) as! ContactTableViewCell
    let entry = filteredContacts[(indexPath as NSIndexPath).row]
    cell.configureWithContactEntry(entry)
    cell.layoutIfNeeded()

    return cell

如果有人能帮助我,那就太好了!

您可以通过这种方式将您的单元格数据传递给您的 imessage 扩展中的其他控制器。检查您选择的单元格覆盖功能,它看起来像

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    print("cell selected at row \(indexPath.row)")
}

从您的模型对象获取基于 indexPath 的模型数据,在您的情况下,您应该从该函数获取。

let entry = filteredContacts[(indexPath as NSIndexPath).row]
let name = entry.name

之后创建 Msession 对象并从您的条目对象中填充数据。

let session = MSSession()
        let message = MSMessage(session: session)
        let layout = MSMessageTemplateLayout()
        layout.caption = name


        message.layout = layout

        //save the message in the current conversation context

        self.savedConversation?.insert(message,
                                       completionHandler: { (err) in

                                        print("ERROR \(err.debugDescription)")
        })

此外,如果您想在消息中附加图像,请按此方式进行。

        layout.image = UIImage(named:"image.png")!