-3

У меня есть простое приложение. Это электронные письма и SMS/MMS скриншот.Добавление ОБОИХ делегатов по почте и SMS/MMS в тип класса

Поскольку у меня есть две кнопки, каждая из которых выполняет две разные функции - (1) снимок экрана, затем электронную почту; и (2) снимок экрана, затем SMS/MMS, мне нужно добавить их в мой class в моем коде.

В настоящее время ...

import UIKit 
import MessageUI 


class ViewController: UIViewController, MFMailComposeViewControllerDelegate { 

Как я могу добавить к моему MFMessageComposeViewControllerDelegate выше заявление класса?

Мне кажется, мне нужно, поскольку у меня есть функции, которые отправляют электронную почту и SMS/MMS.

Извинения для моего описания языка, я очень новый :)

+0

Просто добавьте его! Нет проблем. – matt

+0

ya вы можете использовать оба в том же классе, где вы ударили –

+0

Да, это то, что я думал. Но я получаю сообщение об ошибке при запуске кода - ** «ViewController» не соответствует протоколу «MFMessageComposeViewControllerDelegate» –

ответ

1

также проверить эту ссылку: check this link

import UIKit 
import MessageUI 

class ViewController: UIViewController, MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate { 

@IBOutlet weak var phoneNumber: UITextField! 

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

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


    func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) { 
    //... handle sms screen actions 
    self.dismissViewControllerAnimated(true, completion: nil) 
    } 

override func viewWillDisappear(animated: Bool) { 
    self.navigationController?.navigationBarHidden = false 
} 

@IBAction func sendMail(sender: UIButton) 
{ 
    let mailClass:AnyClass? =NSClassFromString("MFMailComposeViewController") 
    if(mailClass != nil) 
    { 
    if((mailClass?.canSendMail()) != nil) 
    { 
     displayComposerSheet() 
    } 
    } 

    func displayComposerSheet() 
    { 
    let picker: MFMailComposeViewController=MFMailComposeViewController() 
    picker.mailComposeDelegate=self; 
    picker .setSubject("Test") 
    picker.setMessageBody("Mail Sharing !", isHTML: true) 
    let data: NSData = UIImagePNGRepresentation(UIImage(named: "images.jpg")!)! 
    picker.addAttachmentData(data, mimeType: "image/png", fileName: "images.png") 
    self.presentViewController(picker, animated: true, completion: nil) 
    } 


    func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) { 
    switch result.rawValue { 
    case MFMailComposeResultCancelled.rawValue: 
     print("Mail cancelled") 
    case MFMailComposeResultSaved.rawValue: 
     print("Mail saved") 
    case MFMailComposeResultSent.rawValue: 
     print("Mail sent") 
    case MFMailComposeResultFailed.rawValue: 
     print("Mail sent failure: \(error!.localizedDescription)") 
    default: 
     break 
    } 
    controller.dismissViewControllerAnimated(true, completion: nil) 
    } 


} 
+0

Я попытался добавить его, но получаю сообщение об ошибке: ** 'ViewController' не соответствует протоколу 'MFMessageComposeViewControllerDelegate ** –

+1

Все хорошо. Следуя вашей ссылке, и теперь я понимаю метод, спасибо –

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