MessageComposeViewController 不调用委托

MessageComposeViewController not calling delegate

我一直在寻找解决问题的方法,但没有成功...

我正在开发的应用程序允许用户玩一个小问答游戏并将结果作为短信发送。一切正常,除非 MessageComposeViewController 应该关闭(在 send/cancel 上)。

似乎 MessageComposeViewController 没有调用委托,因为我没有从委托函数中获取打印...

我有一个名为 SendMessage 的单独 class 来处理 MessageComposeViewController,当用户单击 ViewController 中的按钮 "Send" 我创建了一个实例class 并展示它。

我的部分 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 的 class 称为 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?