Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift-从Sprite套件中解除邮件视图控制器_Swift_Email_Sprite Kit - Fatal编程技术网

swift-从Sprite套件中解除邮件视图控制器

swift-从Sprite套件中解除邮件视图控制器,swift,email,sprite-kit,Swift,Email,Sprite Kit,我正在尝试添加一个发送电子邮件按钮到一个精灵套件游戏。我可以让电子邮件对话框显示出来。但如果我点击“取消”,应用程序将崩溃或什么也不做。如果我点击send,电子邮件将发送,但对话框保持不变。我无法启动mailComposeController功能…请帮助 代码: import Foundation import UIKit import MessageUI class MailViewController: UIViewController, MFMailComposeViewControll

我正在尝试添加一个发送电子邮件按钮到一个精灵套件游戏。我可以让电子邮件对话框显示出来。但如果我点击“取消”,应用程序将崩溃或什么也不做。如果我点击send,电子邮件将发送,但对话框保持不变。我无法启动
mailComposeController
功能…请帮助

代码:

import Foundation
import UIKit
import MessageUI

class MailViewController: UIViewController, MFMailComposeViewControllerDelegate {

let systemVersion = UIDevice.currentDevice().systemVersion
let devicemodel = UIDevice.currentDevice().model
let appVersion = NSBundle.mainBundle().infoDictionary?["CFBundleShortVersionString"] as! String
let appBuild = NSBundle.mainBundle().infoDictionary?["CFBundleVersion"] as! String
let myrootview2 = UIApplication.sharedApplication().keyWindow?.rootViewController
let mailComposerVC = MFMailComposeViewController()


override func viewDidLoad() {
    super.viewDidLoad()
}

func sendEmailButtonTapped(sender: AnyObject) {
    let mailComposeViewController = configuredMailComposeViewController()
    if MFMailComposeViewController.canSendMail() {
        self.view.window?.rootViewController = mailComposerVC
        print("This is the rootview2: \(myrootview2)")
        myrootview2!.presentViewController(mailComposeViewController, animated: true, completion: nil)
    } else {
        self.showSendMailErrorAlert()
    }
}

func configuredMailComposeViewController() -> MFMailComposeViewController {
    var msgbody: String

    mailComposerVC.mailComposeDelegate = self
    msgbody = "\n\nDevice: \(devicemodel)\niOS Version: \(systemVersion)\nApp Version: \(appVersion)\nApp Build Number: \(appBuild)\n"
    mailComposerVC.setToRecipients(["test1@test.com"])
    mailComposerVC.setSubject("test subject")
    mailComposerVC.setMessageBody(msgbody, isHTML: false)
    //print(mailComposerVC)
    return mailComposerVC
}

func showSendMailErrorAlert() {
    let sendMailErrorAlert = UIAlertView(title: "Could Not Send Email", message: "Your device could not send e-mail.  Please check e-mail configuration and try again.", delegate: self, cancelButtonTitle: "OK")
    sendMailErrorAlert.show()
}





// THIS DOESN'T GET CALLED WHEN SENDING OR CANCELLING EMAIL!
func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {

    let test1 = result.rawValue
    print(test1)
    print(controller)
    print(self)
    print(myrootview2)
}

问题是您要将mailVC作为根视图,您必须在视图中显示它,如下所示

@IBAction func sendEmailButtonTapped(sender: AnyObject) {
    let mailComposeViewController = configuredMailComposeViewController()

if MFMailComposeViewController.canSendMail() {

    self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
    self.showSendMailErrorAlert()
}
}


 func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
      controller.dismissViewControllerAnimated(true, completion: nil)
}

问题是您要将mailVC作为根视图,您必须在视图中显示它,如下所示

@IBAction func sendEmailButtonTapped(sender: AnyObject) {
    let mailComposeViewController = configuredMailComposeViewController()

if MFMailComposeViewController.canSendMail() {

    self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
    self.showSendMailErrorAlert()
}
}


 func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
      controller.dismissViewControllerAnimated(true, completion: nil)
}