Ios 在Swift中从UITableViewController发送短信

Ios 在Swift中从UITableViewController发送短信,ios,swift,uitableview,sms,Ios,Swift,Uitableview,Sms,我想从UITableViewController发送短信,但发送或取消后短信窗口不会关闭 import MessageUI class TableViewController: UITableViewController, UISearchResultsUpdating { override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let ms

我想从UITableViewController发送短信,但发送或取消后短信窗口不会关闭

import MessageUI

class TableViewController: UITableViewController, UISearchResultsUpdating {

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let msgVC = MFMessageComposeViewController()

    msgVC.recipients = ["555555"]

    self.presentViewController(msgVC, animated: true, completion: nil)
  }

  func messageComposeViewController(controller: MFMessageComposeViewController!,
                                  didFinishWithResult result: MessageComposeResult) {

    self.dismissViewControllerAnimated(true, completion: nil)

  }

}

您从未设置过
messageComposeDelegate

import MessageUI

class TableViewController: UITableViewController, UISearchResultsUpdating, MFMessageComposeViewControllerDelegate {

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let msgVC = MFMessageComposeViewController()
    msgVC.messageComposeDelegate = self

    msgVC.recipients = ["555555"]

    self.presentViewController(msgVC, animated: true, completion: nil)
  }

  func messageComposeViewController(controller: MFMessageComposeViewController!,
                                  didFinishWithResult result: MessageComposeResult) {

    self.dismissViewControllerAnimated(true, completion: nil)

  }

}

您还应确认设备已设置为发送消息。请阅读
MFMessageComposeViewController
类的文档。它解释了所有这些,并显示了示例代码。

您从未设置过
messageComposeDelegate

import MessageUI

class TableViewController: UITableViewController, UISearchResultsUpdating, MFMessageComposeViewControllerDelegate {

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let msgVC = MFMessageComposeViewController()
    msgVC.messageComposeDelegate = self

    msgVC.recipients = ["555555"]

    self.presentViewController(msgVC, animated: true, completion: nil)
  }

  func messageComposeViewController(controller: MFMessageComposeViewController!,
                                  didFinishWithResult result: MessageComposeResult) {

    self.dismissViewControllerAnimated(true, completion: nil)

  }

}

您还应确认设备已设置为发送消息。请阅读
MFMessageComposeViewController
类的文档。它解释了所有这些,并显示了示例代码。

另一种解决方案是在didSelect上调用内置sms(Swift 3): UIApplication.shared.open(NSURL(字符串:“sms:number w/o spaces”)作为!URL)


基于swift 2解决方案或objective-c解决方案(见后一部分)。

另一种解决方案是在didSelect上调用内置sms(swift 3): UIApplication.shared.open(NSURL(字符串:“sms:number w/o spaces”)作为!URL)

基于swift 2解决方案或objective-c解决方案(见下半部分)。

我遵循了文档,但似乎输入了错误的内容。非常感谢。我按照文档进行操作,但似乎输入了错误的内容。非常感谢。