Swift TableViewを使いメーラーを起動したいと考えておりますが反応しません。
現在プログラミングを勉強中でして、初歩的な間違い等ありましたら申し訳御座いません。
画像にありますお問い合わせのセルでメーラーを起動したいと考えております。
宜しければ方法を教えて頂けないでしょうか。
Swift
1import UIKit 2import MessageUI 3 4class TableViewController: UITableViewController,MFMailComposeViewControllerDelegate { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 // Uncomment the following line to preserve selection between presentations 10 // self.clearsSelectionOnViewWillAppear = false 11 12 // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 13 // self.navigationItem.rightBarButtonItem = self.editButtonItem 14 } 15 16 override func numberOfSections(in tableView: UITableView) -> Int { 17 return 2 //セルを増やすごとに変更 18 } 19 20 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 21 // セクション毎に何行のセルがあるか 22 switch section { 23 case 0: // 「お問い合わせ」のセクション 24 return 2 25 case 1: // 「」のセクション 26 return 3 27 default: 28 return 0 29 } 30 } 31 32 33 34 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 35 36 tableView.deselectRow(at: indexPath, animated: true) 37 38 39 if indexPath.section == 0 && indexPath.row == 0 { 40 func sendMail() { 41 if MFMailComposeViewController.canSendMail() { 42 let mail = MFMailComposeViewController() 43 mail.mailComposeDelegate = self 44 mail.setToRecipients(["test1@gmail.com"]) 45 mail.setSubject("件名") 46 mail.setMessageBody("お問い合わせ内容はこちらに記載をお願い致します。", isHTML: false) 47 self.present(mail, animated: true, completion: nil) 48 } else { 49 //アラートで通知 50 let alert = UIAlertController(title: "メールアカウントが設定されていません", message: "メールアカウントの設定をお願い致します", preferredStyle: .alert) 51 let dismiss = UIAlertAction(title: "OK", style: .cancel, handler: nil) 52 alert.addAction(dismiss) 53 self.present(alert, animated: true, completion: nil) 54 } 55 } 56 57 //エラー処理 58 func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { 59 if error != nil { 60 //送信失敗 61 print("Error") 62 } else { 63 64 switch result { 65 66 case.cancelled: break 67 //キャンセル 68 case.saved: break 69 //下書き保存 70 case.sent: break 71 //送信 72 default:break 73 } 74 controller.dismiss(animated: true, completion: nil) 75 } 76 } 77 } 78 } 79} 80 81 82追記:実機でのテストも行いましたが動作しませんでした。 83 84 85 86 87 88 89 90 91 92 93
回答1件
あなたの回答
tips
プレビュー