【问题标题】:segue and send email swift快速搜索并发送电子邮件
【发布时间】:2015-08-20 01:51:53
【问题描述】:

我是IOS swift开发的新手,我想知道:在发送电子邮件时,是否可以在发送电子邮件后或在从mailComposeViewController发送电子邮件的同时将其接收到一个新的视图控制器。谢谢你的帮助。

@IBAction func sendEmail(sender: UIButton) {
    let mailComposeViewController = configuredMailComposeViewController()
    if (textField1.text.isEmpty || textField2.text.isEmpty || textField3.text.isEmpty) 
      {
        println("Error")
      } 
    else 
     {
        if MFMailComposeViewController.canSendMail() 
       {
   self.presentViewController(mailComposeViewController, animated: true, completion: nil)     
        } 
       else 
        {
            self.showSendMailErrorAlert()
        }

    }
func configuredMailComposeViewController() -> MFMailComposeViewController {

    let mailComposerVC = MFMailComposeViewController()
    mailComposerVC.mailComposeDelegate = self

    mailComposerVC.setToRecipients(["email.test@gmail.com"])
    mailComposerVC.setSubject("Title")
    //the message body is filed with 3 textFields, already declared
    //need to send then to another view after send email
    mailComposerVC.setMessageBody(textField1.text+textField2.text+textField3.text,
        isHTML: true)

    return mailComposerVC
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if (segue.identifier == "send") {
        var view: UIViewController = segue.destinationViewController as! UIViewController
        //the same textFields in email here...
        //blank
    }
}

编辑:第二个视图有一个数组,我需要用字段 1、2 和 3 填充这个数组,例如:

if (segue.identifier == "send") {
        var view: UIViewController = segue.destinationViewController as! UIViewController
        view.array = [textField1.text, textField2.text, textField3.text]
    }
}

这是我想继续的第二个观点:

class Agenda: UITableViewController {

var array = []

var end = ""
var area = ""
var data = ""

override func viewDidLoad() {
    super.viewDidLoad()

    end = self.array[0] as! String
    area = self.array[1] as! String
    data = self.array[2] as! String
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return self.array.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! AgendaCell

    cell.endereco.text = end
    cell.area.text = area
    cell.data.text = data

    return cell
    }
}

单元格有3个标签,每个标签都需要按顺序归档,这就是我如何制作的问题?

【问题讨论】:

    标签: ios swift email segue


    【解决方案1】:

    您应该将三个文本字段文本连接到一个 fullMessage 中,然后准备一些字符串或数据结构来接收它

    var fullMessage :String {
      return textfield.text + textfield1.text + textfield2.text
    }
    
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "send "{
         var destination = segue.destinationViewController as! UIViewController
          destination.recievemessage = fullMessage
    
        }
    }
    

    【讨论】:

    • 我怎么做才能发送电子邮件,然后转到另一个视图?
    • 按下按钮发送后将其放入发送按钮 performSegueWithIdentifier("send", sender: sender)
    • 我在情节提要中添加了 segue at send 按钮,但在返回电子邮件表单后,它会立即打开视图,我弄错了 segue 连接?
    • 您的发送按钮应该让电子邮件发送,然后关闭实际控制器,然后将数据发送到第二个视图控制器
    • 请再问一个问题,我想将这些字段存储在recievemessage 中,但从第二个视图中存储在数组中,这种方式行不通,我如何在数组中进行segue?
    猜你喜欢
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多