MSMessagesViewController 委托 returns nil 用于活动对话
MSMessagesViewController delegate returns nil for active conversation
我正在尝试将初始视图控制器中的 activeConversation 传递给另一个视图控制器。我这样做的方法是将一个名为 currentConversation 的变量设置为 activeConversation。但是,每当我尝试访问该属性时,它 returns 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")
}
}
Returns "No active conversation"
看起来您正在手动启动视图控制器、设置变量,然后调用 segue。
segue 将启动它自己的视图控制器,因此您启动的视图控制器实际上并没有被使用。
您需要使用 prepareForSegue
方法来设置您的变量,因为它引用了即将显示的视图控制器。
我正在尝试将初始视图控制器中的 activeConversation 传递给另一个视图控制器。我这样做的方法是将一个名为 currentConversation 的变量设置为 activeConversation。但是,每当我尝试访问该属性时,它 returns 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")
}
}
Returns "No active conversation"
看起来您正在手动启动视图控制器、设置变量,然后调用 segue。
segue 将启动它自己的视图控制器,因此您启动的视图控制器实际上并没有被使用。
您需要使用 prepareForSegue
方法来设置您的变量,因为它引用了即将显示的视图控制器。