1

我正在制作 iMessage 游戏。我只想显示当前的 iMessage 会话,并最小化所有以前的 iMessage 会话。对于回合制游戏,我不希望用户返回并查看之前的所有动作。

iOS 10 和 Swift 如何做到这一点?

4

1 回答 1

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!)

        ...
    }
}
于 2016-09-20T20:37:48.447 回答