我一直在寻找我的问题的解决方案,但没有成功......
我正在开发的应用程序允许用户玩一个小问答游戏并将结果作为短信发送。一切正常,除非 MessageComposeViewController 应该关闭(在发送/取消时)。
似乎 MessageComposeViewController 没有调用委托(delegate),因为我没有从委托(delegate)函数中获取打印...
我有一个名为 SendMessage 的单独类,它处理 MessageComposeViewController,当用户单击 ViewController 中的“发送”按钮时,我会创建此类的一个实例并显示它。
带有发送按钮的我的 ViewController 的一部分:
@IBAction func Send(_ sender: Any) {
let sendResult = SendMessage()
if sendResult.canSend() {
let meddelande = sendResult.createMessage(result: 8, name: "Steve Jobs")
present(meddelande, animated: true, completion: nil)
} else {
alert.addAction(alertButton)
self.present(alert, animated: true, completion: nil)
}
}
处理 MessageComposeViewController 的类称为 SendMessage(我遗漏了一些不相关的代码)
func createMessage(result: Int, name: String) -> MFMessageComposeViewController {
let meddelande = MFMessageComposeViewController()
meddelande.messageComposeDelegate = self
meddelande.recipients = ["PhoneNumber"]
meddelande.body = name + ": " + String(result)
return meddelande
}
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
print ("F*ck")
controller.dismiss(animated: true, completion: nil)
}
感谢任何帮助!
最佳答案
我认为你应该持有对它的强引用而不是局部变量
let sendResult = SendMessage()
声明为实例变量
var sendResult:SendMessage?
关于ios - MessageComposeViewController 不调用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49713477/