使用多个 uitextfield (swift) 撰写电子邮件

Compose Email with multiple uitextfield (swift)

如何通过 Swift 与多个 UITextField 一起撰写电子邮件? messageBody下好像只能输入一个数据(名字叫UITextField)。如何将多个 UITextField 添加到我的 messageBody

import UIKit
import CoreData
import MessageUI

class EmailTableViewController: UITableViewController, MFMailComposeViewControllerDelegate, UITextFieldDelegate {

    @IBOutlet weak var name: UITextField!
    @IBOutlet weak var phone: UITextField
    @IBOutlet weak var email: UITextField!
    @IBOutlet weak var base: UITextField!
    @IBOutlet weak var rig: UITextField!
    @IBOutlet weak var wellhead: UITextField!
    @IBOutlet weak var connector: UITextField!
    @IBOutlet weak var size: UITextField!
    @IBOutlet weak var depth: UITextField!
    @IBOutlet weak var pressure: UITextField!
    @IBOutlet weak var temp: UITextField!

    @IBAction func SendEmailButton(sender: AnyObject) {    

        var emailTitle = "Interface Information"
        var messageBody = name.text

        var toRecipents = ["test.com"]
        var mc: MFMailComposeViewController = MFMailComposeViewController()
        mc.mailComposeDelegate = self
        mc.setSubject(emailTitle)
        mc.setMessageBody(messageBody, isHTML: false)
        mc.setToRecipients(toRecipents)
        self.presentViewController(mc, animated: true, completion: nil)

    }

    func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
        switch result.value {
        case MFMailComposeResultCancelled.value:
            println("Mail cancelled")
        case MFMailComposeResultSaved.value:
            println("Mail saved")
        case MFMailComposeResultSent.value:
            println("Mail sent")
        case MFMailComposeResultFailed.value:
            println("Mail sent failure: %@", [error.localizedDescription])
        default:
            break
        }
        self.dismissViewControllerAnimated(true, completion: nil)

    }

您可以创建一个小辅助函数并将字段放入数组中,如下所示:

func appendTextFromTextField(string: String, textField: UITextField) -> String {
    return string + textField.text + "\n"
}

@IBAction func SendEmailButton(sender: AnyObject) {

    var fields: [UITextField] = [name, phone, email, base, rig, wellhead, connector,
        size, depth, pressure, temp]
    var messageBody = ""

    for f in fields {
        messageBody = appendTextFromTextField(messageBody, textField: f)
    }

    // etc.

}