当前位置: 首页 > 面试题库 >

Swift中的MFMailComposeViewController不会关闭

司马宏邈
2023-03-14
问题内容

这是示例代码:

import UIKit
import MessageUI

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

@IBAction func showEmail(sender : AnyObject) {
    var emailTitle = "Test Email"
    var messageBody = "This is a test email body"
    var toRecipents = ["a.nakhimov@gmail.com"]
    var mc: MFMailComposeViewController = MFMailComposeViewController()
    mc.mailComposeDelegate = self
    mc.setSubject(emailTitle)
    mc.setMessageBody(messageBody, isHTML: false)
    mc.setToRecipients(toRecipents)

    self.presentViewController(mc, animated: true, completion: nil)
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
    switch result.value {
    case MFMailComposeResultCancelled.value:
        NSLog("Mail cancelled")
    case MFMailComposeResultSaved.value:
        NSLog("Mail saved")
    case MFMailComposeResultSent.value:
        NSLog("Mail sent")
    case MFMailComposeResultFailed.value:
        NSLog("Mail sent failure: %@", [error.localizedDescription])
    default:
        break
    }
    self.dismissModalViewControllerAnimated(true)
    // self.dismissViewControllerAnimated(true, completion: nil)
}

}

当我按下按钮时,功能 showEmail 被执行并显示用于发送电子邮件的表格。如果单击“发送”,则一切正常-发送邮件,然后执行函数
mailComposeController 。NSLog显示标签 “邮件已发送”, 并再次出现初始屏幕。

如果我在发送邮件的对话框中,单击 “取消” 按钮,则对话框不会消失,函数 mailComposeController
不起作用,两个按钮-“发送”和“取消”,变为灰色,因此保持不变。

怎么了


问题答案:

似乎是iOS 8中的错误。在Objective-C中也存在相同的问题。



 类似资料:
  • 我有一个iOS的应用程序,通常不显示状态栏通过使用prefersStatusBarHidden返回YES在根视图控制器类。我使用MFMailComposeViewController撰写邮件消息使用PresViewController:动画:完成。我无法使MFMailComposeViewController不显示状态栏。我尝试子类化MFMailComposeViewController并使pre

  • 问题内容: 我最近开始在应用程序中使用hibernate和c3p0作为ORM。但是,当我关闭会话工厂时,连接池不会自行关闭!这是我的应用程序中 唯一 可以进行会话操作的地方。 这是我的配置文件 请注意,空闲连接非常短的原因是它是我尚未通过集成测试的唯一方法。他们经常打开和关闭会话工厂,因此我总是用尽所有连接。正如我们在项目开始时一样,从长远来看,我认为这不是一个非常可持续的策略。 需要注意的“有趣

  • 我需要帮助在ios Swift中阅读json。我知道我可以使用decodable,但这是我的JSON的一个示例。当我尝试xith decodable时,我总是得到一个零变量。 谢谢你的帮助 这是我的密码,用可解码的 这就是我的职责 我总是在我的catch中输入,并打印错误消息

  • Swift 是编写程序的绝佳选择,无论是手机、电脑还是服务器,任何能跑代码的设备都是如此。它是一门集现代语言之大成,集结了苹果的工程师文化精髓以及开源社区多样化于一身的编程语言。编译器为专为性能所调优,语言专为开发所优化,二者绝不互相妥协。 Swift 语言还对新的程序员十分友好。它是第一个工业级系统编程语言,却又像脚本语言那样富有张力且十分有趣。在 Playground 编写代码并实时查看 Sw

  • Swift 是一种新的编程语言,用于编写 iOS,OS X 和 watchOS应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发。 Swift 的开发从很久之