MFMailComposeViewController,Swift 4,Xcode 9

ĐorđeNilović

我对MFMailComposeViewControllerDelegate函数有问题。

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    controller.dismiss(animated: true, completion: nil)
}

警告说

实例方法'mailComposeController(:didFinishWith:error :)'与协议'MFMailComposeViewControllerDelegate'的可选要求'mailComposeController(:didFinishWith:error :)'几乎匹配

将'mailComposeController(_:didFinishWith:error :)'设为私有以使此警告静音

单击取消后,我需要将用户返回到App并关闭MFMailComposeViewController,并且不会触发此功能。

是的,我添加了代表 composeVC.mailComposeDelegate = self

如果有人遇到类似问题,我将不胜感激。谢谢

编辑

仅当我将语言设置为Swift 4时,才会发生这种行为。我刚刚退回了几次提交,并且在Swift 3.2中工作得很好。

基本上,这是代码:

class TechSupportVC: UIViewController, MFMailComposeViewControllerDelegate {
    let composeVC = MFMailComposeViewController()

override func viewDidLoad() {
    super.viewDidLoad()

    composeVC.mailComposeDelegate = self
    composeVC.setToRecipients(["[email protected]"])
    composeVC.setSubject("My message")
}

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    controller.dismiss(animated: true, completion: nil)
}

@IBAction func sendPressed(_ sender: Any) {
    guard MFMailComposeViewController.canSendMail() else {
        showMailServiceErrorAlert()
        return
    }

    composeVC.setMessageBody("Test credentials: \(firstAndLastNameTextField.text!)\nPhone: \(numberTextField.text!)\n\n\(messageTextView.text!)", isHTML: false)

    self.present(composeVC, animated: true, completion: nil)
}

}

鲍里斯(Boris Y.)

我不可能应用Đorđe的解决方案,另一个答案对我有所帮助。

func mailComposeController(_ controller: MFMailComposeViewController,
                           didFinishWith result: MFMailComposeResult,
                           error: Swift.Error?) {
    controller.dismiss(animated: true, completion: nil)
}

添加Swift.前缀即可Error?解决该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

闭包元组不支持Xcode 9 Swift 4中的解构

将文本分配给UILabel时发生内存泄漏(iOS,Swift 4,Xcode 9)

Swift 4-Xcode 9 Beta 4-NSKernAttributeName与NSAttributedStringKey

Xcode 9卡在Swift 4迁移上

在Swift 4 Xcode 9 Beta 6中无法对UIButton进行编程,无法添加目标

更新到Xcode 9 / Swift 4后,AVCapture奇怪的编译错误

使用“新构建系统(预览版)”新功能时出现的问题Xcode 9 Swift 4

使用Swift 4 / Xcode 9从CLPLacemark获取完整的地址字符串

更新到Xcode 9和Swift 4

如何删除XCode9“有向Swift 4的转换可用”警告?

如何设置透明的导航栏?iOS 11 Swift 4 Xcode 9

Xcode 9中的Swift 4-如何在NSAttributedstring中使用boundingrect?

Swift4-Xcode 9 PCH错误

setValuesForKeys在Xcode 9中的Swift 4中不起作用

Xcode 9 / Swift 4 AVCaptureMetadataOutput setMetadataObjectTypes使用availableMetadataObjectTypes

蒸气不适用于xcode 9和swift 4

如何从数字键盘上调用textFieldShouldReturn Xcode 9 Swift 4

使用未声明的类型'Date'Xcode 9 Swift 4

Xcode 9 Swift 4 UITableView无法识别的选择器发送到实例

UIView动画Swift 4 Xcode9的问题

调整字体大小以适合标签高度-Swift 4,Xcode 9

MFMailComposeViewController不关闭-Swift,Xcode

MFMailComposeViewController iOS9错误(在iPad mini 4上)

UnrecognizedSelector 如何在 Xcode9/Swift4 中成为可能?

使用 Swift 4 和 Xcode 9 获取 JSON 数据

Xcode 9 Swift 4 由于内存问题而终止(返回一个单元格)

Xcode 9 中的 Swift 4 - 读取核心数据中的数据失败

xcode9 swift4 致命错误:在展开可选值时意外发现 nil

Swift 4、Xcode 9:获取并显示用户的位置