如何使用 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")!
我正在尝试开发一个 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")!