ios - 在swift 4中通过短信推荐朋友
问题描述
嗨想通过短信推荐朋友我写了以下代码。如果用户选择打开带有文本的 SMS 但它没有再次取消用户将无法返回应用程序。
if indexPath.item == 1
{
//SMS
if MFMessageComposeViewController.canSendText() {
let urlToShare = self.referalmodeldata[0].referralCodeOnly
controller1.body = "Hey I just gave an Awesome Assessment on App you can also try it. I scored , Try to beat my score \(String(describing: urlToShare))"
controller1.messageComposeDelegate = self as? MFMessageComposeViewControllerDelegate
self.present(controller1, animated: true, completion: nil)
}
}
解决方案
您没有MFMessageComposeViewControllerDelegate
在代码中正确实现。
首先您需要MFMessageComposeViewControllerDelegate
与您的确认UIViewController
如下:
class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {
接下来是您需要添加它的委托方法,如下所示:
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
self.dismiss(animated: true, completion: nil)
}
然后你需要更换
controller1.messageComposeDelegate = self as? MFMessageComposeViewControllerDelegate
和
controller1.messageComposeDelegate = self
演示代码将是:
import UIKit
import MessageUI
class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {
@IBAction func sendText(_ sender: Any) {
if (MFMessageComposeViewController.canSendText()) {
let controller = MFMessageComposeViewController()
controller.body = "Message Body"
controller.messageComposeDelegate = self
self.present(controller, animated: true, completion: nil)
}
}
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
self.dismiss(animated: true, completion: nil)
}
}
推荐阅读
- cgroups - 是否可以将 cpu.shares 与 cpu.cfs_quota_us 一起使用
- dialogflow-es - 如何在 Dialogflow 上传的 CSV 文件中转义逗号?
- php - 如何在创建表时创建外键
- browser - 如何从开发者工具中查看浏览器本地存储中存储的 Json 对象
- c - 如何声明 volatile 结构的 C 数组
- c++ - 确定一个数组是否可以划分为两个子序列,每个子序列都具有递增的顺序
- python - Concatenate Pandas dataframe preferentially
- perl - 模板工具包:如何从 MACRO BLOCK 返回哈希
- sql-server - sql server 作业在特定时间保持在执行模式
- angular - Angular Reactive Forms - 设置 *ngFor 回复帖子列表的默认值