我正在制作 iMessage 游戏。我只想显示当前的 iMessage 会话,并最小化所有以前的 iMessage 会话。对于回合制游戏,我不希望用户返回并查看之前的所有动作。
iOS 10 和 Swift 如何做到这一点?
您希望在对话中的所有消息中使用单个 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!)
...
}
}