制作两个不同的按钮可创建两个不同的电子邮

时间:2018-02-05 03:07:48

标签: ios swift uitableview mfmailcomposeviewcontroller

我正在尝试使用if indexPath.section == 1 && indexPath.row == 0if indexPath.section == 1 && indexPath.row == 1显示的两个不同按钮,以便在我提取电子邮件时使用不同的主题。两个按钮都拉出相同的主题(建议:)。我如何让程序区分它们?

import UIKit
import Foundation
import MessageUI

class AccountViewController: UITableViewController, MFMailComposeViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.navigationBar.isTranslucent = false
        self.navigationController?.view.backgroundColor = .clear

    }

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if indexPath.section == 1 && indexPath.row == 1{
            print("pressed")
            let mailComposeViewController2 = configureMailController()
            if MFMailComposeViewController.canSendMail() {
                self.present(mailComposeViewController2, animated: true, completion: nil)
            } else {
                showMailError()
            }
        }
        if indexPath.section == 1 && indexPath.row == 0 {
            print("pressed")
            let mailComposeViewController = configureMailController()
            if MFMailComposeViewController.canSendMail() {
                self.present(mailComposeViewController, animated: true, completion: nil)
            } else {
                showMailError()
            }
        }
    }
    //if indexPath.section == 1 && indexPath.row == 1 {

    //}
        func configureMailController() -> MFMailComposeViewController {
            let mailComposerVC = MFMailComposeViewController()
            mailComposerVC.mailComposeDelegate = self
            mailComposerVC.setToRecipients(["SolsticeOfficialLLC@gmail.com"])
            mailComposerVC.setSubject("Suggestion: ")

            return mailComposerVC
        }
        func configureMailController2() -> MFMailComposeViewController {
            let mailComposerVC = MFMailComposeViewController()
            mailComposerVC.mailComposeDelegate = self
            mailComposerVC.setToRecipients(["SolsticeOfficialLLC@gmail.com"])
            mailComposerVC.setSubject("Report: ")

            return mailComposerVC
        }
        func showMailError() {
            let sendMailErrorAlert = UIAlertController(title: "Could not send email", message: "Your device could not send email", preferredStyle: .alert)
            let dismiss = UIAlertAction(title: "OK", style: .default, handler: nil)
            sendMailErrorAlert.addAction(dismiss)
            self.present(sendMailErrorAlert, animated: true, completion: nil)
        }
    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith: MFMailComposeResult, error: Error?){
            controller.dismiss(animated: true, completion: nil)
        }

}

1 个答案:

答案 0 :(得分:1)

您需要添加一个参数来帮助您:

func configureMailController(subject = "Unspecified Subject") -> MFMailComposeViewController {
            let mailComposerVC = MFMailComposeViewController()
            mailComposerVC.mailComposeDelegate = self
            mailComposerVC.setToRecipients(["SolsticeOfficialLLC@gmail.com"])
            mailComposerVC.setSubject(subject)

            return mailComposerVC
        }

然后,在配置时按照您的意愿执行:

let mailComposeViewController1 = configureMailController("Specific Subject 1")

...

let mailComposeViewController2 = configureMailController("Specific Subject 2")