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

How to make an iMessage app that only shows the current message?

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

如何使用 iOS 10 和 Swift 来完成?

您想对对话中的所有消息使用单个 MSSession。

1. session变量(声明在main class)

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

        ...
    }
}