我正在制作一个iMessage游戏。我只希望显示当前的iMessage会话,并将所有以前的会话最小化。对于基于回合制的游戏,我不希望用户返回并查看之前的所有动作。
iOS 10和Swift如何做到这一点?
答案 0 :(得分:3)
您希望在对话中的所有消息中使用单个MSSession。
<强> 1。会话变量(在主类中声明)
class MessagesViewController: MSMessagesAppViewController {
var session: MSSession?
...
}
<强> 2。设置会话(当应用程序变为活动状态时)
override func willBecomeActive(with conversation: MSConversation) {
if let selected = conversation.selectedMessage {
session = selected.session
}
}
第3。使用会话(构建MSMessage时)
if session == nil {
session = MSSession()
}
let message = MSMessage(session: session!)
完整代码示例
class MessagesViewController: MSMessagesAppViewController {
var session: MSSession?
override func willBecomeActive(with conversation: MSConversation) {
if let selected = conversation.selectedMessage {
session = selected.session
}
}
func buildMessage() {
if session == nil {
session = MSSession()
}
let message = MSMessage(session: session!)
...
}
}