【发布时间】:2016-09-27 13:03:37
【问题描述】:
我有一个包含 5 个 UITextfields 和 1 个 UItextview 的页面。这是一个电子邮件表单,我想要它,所以当您按下发送电子邮件的按钮时,它还会清除文本字段和文本视图。非常重要的是,它仅在为电子邮件收集数据后才执行此操作,因此电子邮件不会为空。
代码:
@IBOutlet var text1: UITextField!
@IBOutlet var text2: UITextField!
@IBOutlet var text3: UITextField!
@IBOutlet var text4: UITextField!
@IBOutlet var text5: UITextField!
@IBOutlet var text6: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
self.text1.delegate = self
self.text2.delegate = self
self.text3.delegate = self
self.text4.delegate = self
self.text5.delegate = self
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func sendEmail(sender: AnyObject) { let mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
self.showSendMailErrorAlert()
}
func configuredMailComposeViewController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self // Extremely important to set the --mailComposeDelegate-- property, NOT the --delegate-- property
let messageBody = text1.text!+"\n"+text2.text!+"\n"+text3.text!+"\n"+text4.text!+"\n"+text5.text!+"\n"+text6.text!
mailComposerVC.setToRecipients(["wastepin@hotmail.com"])
mailComposerVC.setSubject("New Dumpster")
mailComposerVC.setMessageBody(messageBody, isHTML: false)
return mailComposerVC
【问题讨论】:
-
“仅在为电子邮件收集数据后才执行此操作非常重要”。如何知道数据已被收集?在哪里采集?您可能希望包含该部分,因为它似乎缺少。
-
很抱歉。正如我所提到的,它是一个邮件表单,在代码中它显示“messagebody”并结合了所有文本字段,即收集数据并将其写入电子邮件的时间。
-
如果电子邮件没有通过怎么办?我注意到您的代码中有错误检查,尽管它是否包含所有其他问题?您也可以在成功发送视图后将其关闭,并使用可选的“清除字段”按钮将数据留在字段中。
-
原来的计划也是这样,但我的测试人员认为它没有明确是令人困惑的。
标签: ios xcode swift uibutton uitextfield