使用Swift发送短信,记住电话号码

时间:2016-05-09 03:20:46

标签: swift

我正在开发一个应用程序,您可以在应用程序中向某人发送短信。这是我迄今为止所发现的。我想记住未来输入的电话号码,尽管用户可以随时更改电话号码。有什么想法吗?

import UIKit
import MessageUI

class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {

@IBOutlet weak var phoneNumber: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
}

@IBAction func sendText(sender: UIButton) {
    if (MFMessageComposeViewController.canSendText()) {
        let controller = MFMessageComposeViewController()
        controller.body = "Message Body"
        controller.recipients = [phoneNumber.text]
        controller.messageComposeDelegate = self
        self.presentViewController(controller, animated: true, completion: nil)
    }
}

func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {
    //... handle sms screen actions
    self.dismissViewControllerAnimated(true, completion: nil)
}

override func viewWillDisappear(animated: Bool) {
    self.navigationController?.navigationBarHidden = false
}
}

2 个答案:

答案 0 :(得分:0)

前一段时间做过这样的事情,这是一个想法:

您可以将phoneNumber.text保存为变量,然后(可能在成功完成发送的文本消息之后)将其保存在数据库(可能是Realm)或使用应用程序数据(NSCoding)中。

然后,您将拥有一个存储号码的地方,然后可以比较将来在文本字段中输入的任何新号码。

答案 1 :(得分:0)

您可以将电话号码保存为nsuser默认值。当您需要该号码时,您可以从Nsuser默认值

中恢复
NSUserDefaults.standardUserDefaults().setObject(phoneNumber.text, forKey: "phone_no")

按上述行,您可以将手机号码存储在nsuserDefault

然后您可以通过此代码

来检索它
NSUserDefaults.standardUserDefaults().valueForKey("phone_no")

你可以用这个替换你的功能

@IBAction func sendText(sender: UIButton) {
    if (MFMessageComposeViewController.canSendText()) {
        let controller = MFMessageComposeViewController()
        controller.body = "Message Body"
        if (NSUserDefaults.standardUserDefaults().valueForKey("phone_no") != nil)
        {
            controller.recipients = [NSUserDefaults.standardUserDefaults().valueForKey("phone_no")]
        }
        else
        {
            controller.recipients = [phoneNumber.text]
        }

        NSUserDefaults.standardUserDefaults().setObject(phoneNumber.text, forKey: "phone_no")
        controller.messageComposeDelegate = self
        self.presentViewController(controller, animated: true, completion: nil)
    }
}