首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFMailComposeViewController不会拒绝

MFMailComposeViewController不会拒绝
EN

Stack Overflow用户
提问于 2018-01-09 21:02:31
回答 1查看 479关注 0票数 2

我的应用程序中有以下代码来发送电子邮件:

代码语言:javascript
复制
let ToRecipents = ["recipient here"]
        let subject = "subject here"
        let MessageBody = "message here"

        let mc : MFMailComposeViewController = MFMailComposeViewController()

        mc.mailComposeDelegate = self


        mc.setToRecipients(ToRecipents)
        mc.setSubject(subject)
        mc.setMessageBody(MessageBody, isHTML: false)

        self.present(mc, animated: true, completion: nil)

    }

    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {

        controller.dismiss(animated: true, completion: nil)

    }

我似乎不能让MFMailComposeViewController驳回,我做错了什么??

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 21:10:59

在不调用委托方法的一般情况下:

·检查是否设置了代理。您可以使用mc.mailComposeDelegate = self正确地执行此操作

·检查您设置的委托方法是否符合协议。

·检查委托方法是否在作为委托传递的对象中正确实现(这就是您的问题所在)。阅读文档,或者删除方法声明,让编译器/IDE/XCode自动完成它。在Swift中,在不同的教程之间,它们经常是问题,因为Swift 1,Swift 2,Swift 3/4已经重命名了方法并导致了问题,教程只关注Swift版本。

你的方法:

代码语言:javascript
复制
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?)

来自documentation的方法

代码语言:javascript
复制
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?)

因为它们是不同的,并且iOS SDK应该检查委托是否响应了正确的方法,那么您的方法就不应该被调用,因为它不匹配。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48168807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档