2016-07-24 1 views
1

나는 iOSxCode이라는 신제품입니다. 이전에 안드로이드를 개발했고 Intent로 전화를 걸어 안드로이드 앱으로 SMS를 보내야한다고 생각합니다. 이제는 Button을 누르면 SMS을 특정 번호로 전송하는 간단한 응용 프로그램을 개발하고 싶습니다. 그래서 UbuntuMac OS 10.11VM을 설치했습니다. 그리고 연결할 수 내 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. 

    } 

} 

그리고

는 또한 위의 sendMessageSimple 버튼 및 링크를 만들었습니다. 앱을 실행하면 단추가 표시되고 누를 때 뭔가하는 것 같지만 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

, 나는 두 솔루션 모두의 먼저 혼합, 나는이 방법으로, sendTextsendMessage의 기능을 변경하고 이름 :

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 to Friend @Kabiroberai님께 서 도움을 요청하고 약간의 시간을주십시오.

0

는 Heres는 아래 기능은 빠른 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; 
    } 
}