【问题标题】:How to import ViewController data into email in Swift 3?如何在 Swift 3 中将 ViewController 数据导入电子邮件?
【发布时间】:2017-06-20 19:59:29
【问题描述】:

我对 Swift/xcode 非常陌生,并且我已经构建了我的第一个应用程序,但我被困在一个部分。我有一个打开电子邮件的按钮,我想从一个选择器、两个日期选择器和一个文本输入中进行选择并将它们导入到电子邮件中。我希望用户做出选择,然后在电子邮件打开时单击发送。一切正常,但我无法弄清楚如何将应用程序中的数据导入电子邮件,尽管搜索了所有内容。有什么建议吗?

}

func configuredMailComposeViewController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self 

mailComposerVC.setToRecipients(["myemail@myemail.com"])
mailComposerVC.setSubject("EQUIPMENT RESERVATION REQUEST")
mailComposerVC.setMessageBody("test email message", isHTML: false)

return mailComposerVC
}

基本上,我想用我的日期选择器、选择器和文本输入中的选择替换“测试电子邮件”字符串。

【问题讨论】:

  • 你可以使用MFMailComposeViewController,看到这个答案:stackoverflow.com/a/25984329/1316346
  • 目前还不清楚这里的有用答案是什么样的。你在哪里卡住了,你尝试了什么?你能从这些输入中收集数据吗?你能构建你想提供给用户的电子邮件正文吗?您可以使用邮件撰写视图控制器来呈现电子邮件模板(即使它还没有包含您想要的数据)?如果对您的实现没有任何可见性,就很难知道您可能会卡在哪里,或者可能需要如何更改才能完成您想做的事情。
  • 我的模板通过我创建的“提交”按钮正确打开,但它目前只包含一条默认消息。这是通过 iOS 在应用程序之外的。我试图弄清楚如何在单击按钮时从我的选择器和文本框中收集数据,并在消息正文中包含信息,因此用户只需要发送电子邮件。我试过创建一个全局变量并嵌入一个函数,但都没有成功。也就是说,我对此很陌生,所以很可能我只是把它搞砸了。凯文 我会尽快尝试你的建议。谢谢你们。
  • 我会在我回到我的 mac 时发布代码。

标签: xcode email swift3 viewcontroller


【解决方案1】:

我可以使用上面 Kevin 的链接和以下链接来解决这个问题:

How to store data from a picker view in a variable when a button is pressed?

Get just the date (no time) from UIDatePicker

修改后的代码如下,完全符合我的要求:

【讨论】:

    【解决方案2】:
     @IBOutlet weak var StartDate: UIDatePicker!
    
     @IBOutlet weak var EndDate: UIDatePicker!
    
     @IBOutlet weak var HowMany: UITextField!
    
        func configuredMailComposeViewController() -> MFMailComposeViewController {
            let chosen = Picker1.selectedRow(inComponent: 0)
            let chosenString = words[chosen]
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "MM/dd"
            let stringDate = dateFormatter.string(from: StartDate.date)
            let Start = stringDate
            let number = HowMany.text
            let stringendDate = dateFormatter.string(from: EndDate.date)
            let End = stringendDate
            let mailComposerVC = MFMailComposeViewController()
            mailComposerVC.mailComposeDelegate = self
            mailComposerVC.setToRecipients(["myemail@example.com"])
            mailComposerVC.setSubject("Email Subject")
            mailComposerVC.setMessageBody ("Please reserve \(number ?? "") of 
            the following   **\(chosenString)**   from \(Start) to \(End). 
            Thanks.", isHTML: false)
            return mailComposerVC
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2017-09-27
      相关资源
      最近更新 更多