2015-01-11 4 views
0

У меня есть UITextField, в который пользователь вводит некоторый текст. Я хочу, чтобы этот текст отправлялся как смс, когда я нажимал кнопку отправки. Код, который я написал, дает мне проблемы. Это то, что у меня есть до сих пор.отправить текст из UITextField в sms в swift

import UIKit 
import MessageUI 

class ViewController: UIViewController, MFMessageComposeViewControllerDelegate { 



@IBOutlet weak var message: UITextField! 


override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

} 


func canSendText() -> Bool { 
    return MFMessageComposeViewController.canSendText() 
} 


func configuredMessageComposeViewController() -> MFMessageComposeViewController { 

    let messageComposeVC = MFMessageComposeViewController() 

    messageComposeVC.messageComposeDelegate = self 
    messageComposeVC.body = message.text // This line doesn't work. 
    return messageComposeVC 
} 


func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) { 
    controller.dismissViewControllerAnimated(true, completion: nil) 
} 



@IBAction func sendtext(sender: AnyObject) { 

    let messageComposer = ViewController() 

     // Make sure the device can send text messages 
     if (self.canSendText()) { 
      // Obtain a configured MFMessageComposeViewController 
      let messageComposeVC = messageComposer.configuredMessageComposeViewController() 


      var vc = self.view?.window?.rootViewController 

      vc?.presentViewController(messageComposeVC, animated: true, completion: nil) 



     } else { 
      // Let the user know if his/her device isn't able to send text messages 
      let errorAlert = UIAlertView(title: "Cannot Send Text Message", message: "Your device is not able to send text messages.", delegate: self, cancelButtonTitle: "OK") 
      errorAlert.show() 
     } 




} 


} 

Есть ли способ, чтобы скопировать все содержимое UITextField и вставить в messageComposeVC.body? Любая помощь приветствуется. Благодаря!

ответ

1

Попробуйте изменить линию

let messageComposeVC = messageComposer.configuredMessageComposeViewController() 

в

let messageComposeVC = self.configuredMessageComposeViewController() 

messageComposer новый экземпляр вашего ViewController который не установили сообщение. Вы создаете новый экземпляр ViewController в строке

var messageComposer = ViewController() 

Это новый экземпляр message textField, который не содержит текст, который вы ввели.

+0

Работал отлично! Спасибо. – Dman

Смежные вопросы