MailController 1.0.1

MailController 1.0.1

Kolibaba Volodymyr维护。



  • 作者:
  • Volodymyr Kolibaba

MailController

Build Status Version Platform

MailController是围绕着MFMailComposeViewController的一个轻量级Swift包装器,为您提供了一个方便的接口。
它消除了实际代理模式的使用,并在必要时提供了一个基于块的API。

MFMailComposeViewController通过重复使用出现问题,因此不鼓励这样做。
相反,MailController提供了单例,并在关闭后处理MFMailComposeViewController的释放。

示例

要运行示例项目,请克隆仓库,然后首先在Example目录中运行pod install命令。

要求

  • iOS 9.0+

安装

CocoaPods

MailController 可通过 CocoaPods 获得。要使用 CocoaPods 将其集成到您的 Xcode 项目中,请在 Podfile 中指定它。

platform :ios, '9.0'

target '<Your Target Name>' do
    pod 'MailController', '~> 1.0'
end

源文件

或者,您可以直接将 Mailcontroller.swift(以及可选的 MailControllerDefaultResultHandler.swift)源文件添加到您的项目中。

用法

快速开始

import MailController

class ViewController: UIViewController {

    @IBAction func mailAction() {

        if let mailComposeViewController = MailController.shared.mailComposeViewController() {

            mailComposeViewController.setToRecipients(["[email protected]"])
            mailComposeViewController.setSubject("Test")
            mailComposeViewController.setMessageBody("Hello world!", isHTML: false)

            present(mailComposeViewController, animated:true, completion:nil)
        }
    }
}

默认情况下,当用户完成界面时,它将被关闭。
但您可以自定义此行为,并使用 completionHandler 块使用结果和错误参数。

    @IBAction func mailAction() {
    
        let mailComposeViewController = MailController.shared.mailComposeViewController { (controller, result, error) in
            
            switch (result) {
            
                case MFMailComposeResult.failed:
                
                    print("Failed to send Email with error: \(error?.localizedDescription ?? "")!")
                
                default:
                break
            }
            
            controller.dismiss(animated: true, completion: nil)
        }
        
        if let mailComposeViewController = mailComposeViewController {
        
            present(mailComposeViewController, animated:true, completion:nil)
        }
    }
}

作者

Volodymyr Kolibaba, [email protected]

许可

MailController 适用于 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。