如何制作仅显示当前消息的iMessage应用程序?

时间:2016-09-20 20:30:51

标签: ios swift msmessage

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

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

1 个答案:

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

        ...
    }
}