2016-07-24 15 views
1

iOSの新商品です。xCodeです。 以前私はアンドロイドを開発しました。私はインテントと電話をかけてアンドロイドアプリでSMSを送信する必要があることを知っています。 今、私はButtonを押すとSMSを特定の番号に送信する単純なアプリケーションを開発したいと考えています。 UbuntuMac OS 10.11​​をインストールしました。 それに私のiPhone 5を接続して、私の単純なHello Worldアプリを実際にiPhoneのデバイスで実行していて、simulatorでないものを実行することができます。 は、今私はStoryBoardButtonを作成し、この記事に従うことによってfuncionします Send SMS Message ToturialiOSでSMSを送信する

はまた、他のリンクを見て、類似していました。 私の簡単なViewController.swiftです。

import UIKit  
    import MessageUI 

    class ViewController: UIViewController, MFMessageComposeViewControllerDelegate { 

     @IBAction func sendMessage(sender: AnyObject) { 

      print("Send button pressed") //display a text to make sure is calling 

      if (MFMessageComposeViewController.canSendText()) { 
       let controller = MFMessageComposeViewController() 
       controller.body = "TestMessage " 
       controller.recipients = ["xxxxxxxxx", "xxxxxxxxx"] // sending for two numbers 
       controller.messageComposeDelegate = self  
       self.presentViewController(controller, animated: true, completion: nil)  
      }  
     } 
     func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) {  
      switch (result.rawValue) {  
      case MessageComposeResultCancelled.rawValue:  
       print("Message was cancelled")  
       self.dismissViewControllerAnimated(true, completion: nil)  
      case MessageComposeResultFailed.rawValue:  
       print("Message failed")  
       self.dismissViewControllerAnimated(true, completion: nil)  
      case MessageComposeResultSent.rawValue:  
       print("Message was sent")  
       self.dismissViewControllerAnimated(true, completion: nil) 
      default: 
       break; 
} 
     } 

     override func viewDidLoad() { 
      super.viewDidLoad() 

      // Do any additional setup after loading the view, typically from a nib. 

     } 



     override func didReceiveMemoryWarning() { 

      super.didReceiveMemoryWarning() 

      // Dispose of any resources that can be recreated. 

    } 

} 

Simpleボタンを作成し、上記sendMessageにそれをリンクします。 私は、アプリケーションを実行すると、ボタンを表示し、私はそれを押して、それは何かをやっているようだが、SMSは送信されません。 すべてのアイデア?? 本当にありがとうございます。

更新:私の友人はsendMessage Buttonprint("Send button pressed")を追加したので、私はそれを押すとsendMessageというボタンが見つかることを知りました。

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

そしてMessageComposeViewControllerのプロトコルは次のとおりです。私は最終的にそれをやった

+0

は、あなたの 'sendMessage'機能に'( "押されたボタンを送る") 'プリントを入れることはできますか?コンソールにそのメッセージが表示されない場合は、おそらく関数が呼び出されていない可能性があります。 – kabiroberai

+0

SendMessage関数では、この行を前後に追加しました。 デバッグエリアやiphone画面で見ることができません どうすればいいですか? –

+0

ストーリーボードからコードにボタンを接続しましたか? – kabiroberai

答えて

1

、私は2つのソリューション、すべての 最初に混ざって、私はこのように、sendTextにそれをsendMessageの機能を変更し、名前を変更しました:

func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) { 
    switch (result.rawValue) { 
    case MessageComposeResultCancelled.rawValue: 
     print("Message was cancelled") 
     self.dismissViewControllerAnimated(true, completion: nil) 
    case MessageComposeResultFailed.rawValue: 
     print("Message failed") 
     self.dismissViewControllerAnimated(true, completion: nil) 
    case MessageComposeResultSent.rawValue: 
     print("Message was sent") 
     self.dismissViewControllerAnimated(true, completion: nil) 
    default: 
     break; 
    } 
} 

そして今、ストーリーボードにボタンをクリックすると、controlキーを押してのViewControllerにボタンをドラッグし、sendText機能を選択それは正しく動作します。

Thxを私の友人@カビロベラに助けてもらい、時間を与えてください。

0

相続人は下の機能が迅速4に変換:

func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { 
    switch (result.rawValue) { 
    case MessageComposeResult.cancelled.rawValue: 
     print("Message was cancelled") 
     self.dismiss(animated: true, completion: nil) 
    case MessageComposeResult.failed.rawValue: 
     print("Message failed") 
     self.dismiss(animated: true, completion: nil) 
    case MessageComposeResult.sent.rawValue: 
     print("Message was sent") 
     self.dismiss(animated: true, completion: nil) 
    default: 
     break; 
    } 
}