【问题标题】:MSMessagesViewController delegate returns nil for active conversationMSMessagesViewController 委托为活动对话返回 nil
【发布时间】:2020-04-05 16:14:51
【问题描述】:

我正在尝试将初始视图控制器中的 activeConversation 传递给另一个视图控制器。我这样做的方法是将一个名为 currentConversation 的变量设置为 activeConversation。但是,每当我尝试访问该属性时,它都会返回 nil。

初始视图控制器:

    vc.displayType = self.passSelectedPhrase
    vc.currentConversation = activeConversation
    performSegue(withIdentifier: "showDetail", sender: selectedPhrase)

消息视图控制器(委托):

var currentConversation : MSConversation!
func saySomething(value: String){

    if ((currentConversation) != nil) {
        currentConversation?.insertText("hello there", completionHandler: nil)
        currentConversation?.insertText(value, completionHandler: nil)
    }else{
        print("No active conversation")
    }
}

返回“无活动对话”

【问题讨论】:

    标签: ios swift message


    【解决方案1】:

    看起来您正在手动启动视图控制器,设置变量,然后调用 segue。

    segue 会启动它自己的视图控制器,所以你启动的那个实际上并没有被使用。

    您需要使用prepareForSegue 方法来设置变量,因为它引用了即将显示的视图控制器。

    【讨论】:

    • 谢谢!完美运行。
    猜你喜欢
    • 2018-12-31
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多