2016-10-03 2 views
1

Xcode 8을 사용하여 iPhone 용 응용 프로그램을 제작하고 있습니다.
간단한 앱에 버튼이 있습니다. 사용자가이 버튼을 탭하면 messageComposeViewController이 호출되고 전화 번호와 메시지 내용이 채워집니다.
보내기 버튼을 클릭하면 메시지가 성공적으로 전달되었습니다.

문제는 MessageComposeViewController입니다.
메시지를 보낸 후 단추를 눌러 전화를 걸면 메시지 작성자 대신 검은 색 화면이 나타납니다.

아래 코드는 첨부되어 있습니다.
나는 어떤 도움을 주셔서 감사합니다.MessageComposeViewController는 한 번만 선물합니다.

import UIKit 
import MessageUI 

class ViewController: UIViewController, MFMessageComposeViewControllerDelegate { 

    let msg = MFMessageComposeViewController() 

    @IBOutlet weak var coordinate_label: UILabel! 

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

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


    @IBAction func sendMessage(_ sender: AnyObject) { 

     self.msg.body = "Message Content" 
     self.msg.recipients = ["xxx-xxx-xxxx"] 
     self.msg.messageComposeDelegate = self 

     self.present(msg, animated: false, completion: nil) 
    } 

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

당신의 작업은 광산 코드로 완료되고 내 대답을 승인합니다. 안녕하십니까 안녕하십니까. –

답변

3

이 코드

import Foundation 
import MessageUI 

let textMessageRecipients = ["1-800-867-5309"] // for pre-populating the recipients list (optional, depending on your needs) 

class MessageComposer: NSObject, MFMessageComposeViewControllerDelegate { 

    // A wrapper function to indicate whether or not a text message can be sent from the user's device 
    func canSendText() -> Bool { 
     return MFMessageComposeViewController.canSendText() 
    } 

    // Configures and returns a MFMessageComposeViewController instance 
    func configuredMessageComposeViewController() -> MFMessageComposeViewController { 
     let messageComposeVC = MFMessageComposeViewController() 
     messageComposeVC.messageComposeDelegate = self // Make sure to set this property to self, so that the controller can be dismissed! 
     messageComposeVC.recipients = textMessageRecipients 
     messageComposeVC.body = "Hey friend - Just sending a text message in-app using Swift!" 
     return messageComposeVC 
    } 

    // MFMessageComposeViewControllerDelegate callback - dismisses the view controller when the user is finished with it 
    func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) { 
     controller.dismissViewControllerAnimated(true, completion: nil) 
    } 
} 

주, 최신 구문 2017보십시오 .. 당신의 ViewController에서

func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { 
    controller.dismiss(animated: true, completion: nil) 
} 

..

import UIKit 

class ViewController: UIViewController { 
    // Create a MessageComposer 
    let messageComposer = MessageComposer() 

    @IBAction func sendTextMessageButtonTapped(sender: UIButton) { 
     // Make sure the device can send text messages 
     if (messageComposer.canSendText()) { 
      // Obtain a configured MFMessageComposeViewController 
      let messageComposeVC = messageComposer.configuredMessageComposeViewController() 

      // Present the configured MFMessageComposeViewController instance 
      // Note that the dismissal of the VC will be handled by the messageComposer instance, 
      // since it implements the appropriate delegate call-back 
      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() 
     } 
    } 
} 
+2

안녕하십니까. 고마워, 나는 최신 Swift 구문으로 편집했다. (긴장을 풀고 언제든지 편집 할 수있다.) – Fattie