teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コメント追加

2019/01/08 05:15

投稿

TakamasaIijima
TakamasaIijima

スコア16

title CHANGED
File without changes
body CHANGED
@@ -58,7 +58,7 @@
58
58
  Xcode Version 10.1 (10B61)
59
59
  Swift3
60
60
 
61
- ## 回答をいただいた後に編集しました。
61
+ ## 回答をいただいた後に編集しました。(回答箇所は未編集)
62
62
  ```swift
63
63
 
64
64
  var mailViewController = MFMailComposeViewController()

2

ViewControllerを追加

2019/01/08 05:14

投稿

TakamasaIijima
TakamasaIijima

スコア16

title CHANGED
File without changes
body CHANGED
@@ -56,4 +56,44 @@
56
56
  ### 補足情報(FW/ツールのバージョンなど)
57
57
 
58
58
  Xcode Version 10.1 (10B61)
59
- Swift3
59
+ Swift3
60
+
61
+ ## 回答をいただいた後に編集しました。
62
+ ```swift
63
+
64
+ var mailViewController = MFMailComposeViewController()
65
+ let currentViewController : UIViewController? = UIApplication.shared.keyWindow?.rootViewController! //<=追記
66
+ @IBAction func sendMail() {
67
+ //メールを送信できるかチェック
68
+ if MFMailComposeViewController.canSendMail()==false {
69
+ print("Email Send Failed")
70
+ return
71
+ }
72
+
73
+ var mailViewController = MFMailComposeViewController()
74
+ var toRecipients = ["XXXX@gmail.sampledomainX"]
75
+
76
+ mailViewController.mailComposeDelegate = self
77
+ mailViewController.setSubject("メールの件名")
78
+ mailViewController.setToRecipients(toRecipients) //Toアドレスの表示
79
+ mailViewController.setMessageBody("メールの本文", isHTML: false)
80
+ //var currentViewController : UIViewController? = UIApplication.shared.keyWindow?.rootViewController!
81
+ currentViewController?.present(mailViewController, animated: true, completion: nil)
82
+ }
83
+
84
+ func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
85
+ if result == MFMailComposeResult.cancelled {
86
+ print("メール送信がキャンセルされました")
87
+ } else if result == MFMailComposeResult.saved {
88
+ print("下書きとして保存されました")
89
+ } else if result == MFMailComposeResult.sent {
90
+ print("メール送信に成功しました")
91
+ } else if result == MFMailComposeResult.failed {
92
+ print("メール送信に失敗しました")
93
+ }
94
+
95
+ currentViewController?.dismiss(animated: true, completion: nil)
96
+
97
+ //mailViewController.dismiss(animated: true, completion: nil) //閉じる <= Controllerを間違えていたので編集
98
+ }
99
+ ```

1

タイトル名を変更 フレームワーク名追加

2019/01/08 05:14

投稿

TakamasaIijima
TakamasaIijima

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- Swift SpriteKit上でmail作成画面が閉じれない
1
+ Swift SpriteKit上でMFMailComposeViewControllerで作成したmail作成画面が閉じれない
body CHANGED
@@ -1,5 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
  Swift+SpriteKitで2Dのゲームを作っています。
3
+ MessageUI.frameworkを使って
3
4
  spritekitnodeをタップしたらMFMailComposeViewControllerでメールの作成画面を表示し、送信/下書き/キャンセルのいずれかが処理されたらメールの作成画面を閉じたいです。
4
5
  現状はタップ->メール作成画面の表示までは実装できました。
5
6