ios - MessageComposeViewController 不调用委托(delegate)

标签 ios swift mfmessagecomposeviewcontroller

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

我正在开发的应用程序允许用户玩一个小问答游戏并将结果作为短信发送。一切正常,除非 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/

相关文章:

iphone - 从 MFMessageComposeViewController 获取消息正文和收件人列表

ios - 验证 iMessage 支持、SMS 支持

ios - 自定义 View 标签不会改变

ios - 为什么当 dequeueReusableCellWithIdentifier 发生时不会调用单元格中的 init 方法

ios - 将 CCSprite 的子类添加到场景中

ios - SCNNode childNodes 的总高度

swift - 在 NSDocument 子类中, print() 正在获取 printDocument() 的修复程序

ios - 在 Swift 的 UIImageView 中加载图像时出现内存警告

ios - 是否可以在 iOS 中使用 MFMessageComposeViewController 使 SMS 附加图像可链接?

ios - 从 USB 连接的 iOS 设备进行截屏/镜像