2016-09-26 7 views
1

저는 건물에있는 간단한 iOS10 응용 프로그램을 가지고 있습니다. 사용자가 제목 줄과 이메일 본문을 추가 할 수있는 페이지를 만들었습니다. 전자 메일 전송 버튼을 누르면 MFMailViewCompose가 정상적으로 시작되고 전자 메일을 보내면 전자 메일이 전송됩니다. 그러나 MFMailViewCompose는 보내거나 취소 할 때 닫히지 않습니다.MFMailViewCompose가 닫히지 않습니다

여기에 코드

import UIKit 
import MessageUI 

class EnglishEmailHelpdeskVC: UIViewController, MFMailComposeViewControllerDelegate { 

override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 

//Helpdesk Email Subject Line and Body. 
@IBOutlet var EmailHelpdeskSubjectLine: UITextField! 
@IBOutlet var EmailHelpdeskBody: UITextView! 

var MailControllerCompose:MFMailComposeViewController! 

//Helpdesk Send Email Button. 
@IBAction func EmailHelpdeskSendButton(_ sender: AnyObject) { 
let HDSubjectLine = EmailHelpdeskSubjectLine.text 
let HDBody = EmailHelpdeskBody.text 

MailControllerCompose = MFMailComposeViewController() 
MailControllerCompose.mailComposeDelegate = self 
MailControllerCompose.setToRecipients(["[email protected]"]) 
MailControllerCompose.setSubject(HDSubjectLine!) 
MailControllerCompose.setMessageBody(HDBody!, isHTML: false) 

self.present(MailControllerCompose, animated: true, completion: nil) 

} 

@nonobjc func MFMailComposeViewContoller(controller: MFMailComposeViewController,didFinishWithResult result:MFMailComposeResult, error: NSError?){ 
MailControllerCompose.dismiss(animated: true, completion: nil) 
} 
} 

에게 있습니다 도와주세요!

답변

0

이 문제와 싸우고 꽤 후, 여기에 마지막으로 나를 위해 일한 내용은 다음과 같습니다

public func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Swift.Error?) { 
    controller.dismiss(animated: true, completion: nil) 
} 

중요한 부분은 마지막 매개 변수에 Swift.Error입니다. Swift 한정자가 없으면 ErrorUIViewController.Error으로 바뀌므로이를 재정의하려는 방법과 일치하지 않습니다. 같은 이유로 NSError을 선택하지 않았다고 생각됩니다.

(. 내가 원래 생각으로 참고로, 내 잘못 Error 타입이 분명하지 UIKit에서 PromiseKit에서 오는)

+0

다른 사람이 같은 결론에 온 것 같은데 : http://stackoverflow.com/a/ 39623586/58603 –