簡體   English   中英

MessageComposeViewController不調用委托

[英]MessageComposeViewController not calling delegate

我一直在尋找解決問題的方法,但沒有成功...

我正在開發的應用程序使用戶可以玩小型問答游戲並將結果作為文本消息發送。 一切正常,除非要關閉MessageComposeViewController(在發送/取消時)。

似乎MessageComposeViewController沒有調用委托,因為我沒有從委托函數中獲取打印內容...

我有一個名為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?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM