私はいくつかの異なるアプリケーションで使用するカスタムフレームワーク(Swift)を作成しました。カスタムフレームワークからの迅速な電子メールが失敗する
私がこのフレームワークに入れた1つの機能は基本的な電子メールクライアントです。しかしとき
最初は完全に電子メールのページビューをロードし、すべてのフィールドが、私は(すなわちアドレス、BCC、件名、添付ファイルなど)を期待する方法を提示している:
のコードは以下の通りですが、それは現在、次の行動を描い私は送信またはキャンセルを押すと、アプリケーションがクラッシュします。実際には電子メールを送信します。私は "公共funcのmailComposeController(コントローラ:MFMailComposeViewController、didFinishWithResult結果:MFMailComposeResult、エラー:NSError?)"に印刷物を置いたことがあります。
以下のコードを参照してください:
枠組み
import UIKit
import MessageUI
public class Framework_Email : NSObject, MFMailComposeViewControllerDelegate{
var picker : MFMailComposeViewController!
public var EmailSubject : String = ""
public var EmailMessage : String = ""
public var EmailAddress : [String] = []
public var EmailBlindAddress : [String] = []
public var EmailAttachment : [NSDictionary] = []
public func SendEmail(View : UIViewController)
{
picker = MFMailComposeViewController()
picker.mailComposeDelegate = self
picker.setToRecipients(EmailAddress)
picker.setSubject(EmailSubject)
picker.setMessageBody(EmailMessage, isHTML: false)
picker.setBccRecipients(EmailBlindAddress)
for temp in EmailAttachment
{
picker.addAttachmentData(temp["Data"] as! NSData, mimeType: temp["Type"] as! String, fileName: temp["Name"]as! String)
}
View.presentViewController(picker, animated: true, completion: nil)
}
public func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
print("Im Here!!!!!") //This is never seen in the output
picker.dismissViewControllerAnimated(true, completion: nil)
}
}
を、私は、これは動作しません、なぜ誰もがお勧めできます私のメインアプリビューコントローラで、次の
let EmailClient : Framework_Email = Framework_Email()
EmailClient.EmailAddress = ["[email protected]"]
EmailClient.EmailMessage = "Email Message"
EmailClient.EmailSubject = "Email Subject"
EmailClient.EmailBlindAddress = ["[email protected]"]
EmailClient.SendEmail(self)
でそれを呼び出します?
おかげ
こんにちは、アイブ氏は、私が実行しているXcode向けていないことと違いはありません –
を試してみましたが、多分問題は、あなたのビューコントローラを置くということですここに。あなたのViewControllerをメールコンポーザの代理人として実装し、そこにdidFinishWithResultを実装してみてください。 – eMKa