我想从集合视图单元格控制器发送邮件,但出现错误。下面是完整的代码:从CollectionViewCell.swift发送邮件
import Foundation
import UIKit
import MessageUI
import Parse
import Bolts
class CollectionViewCell: UICollectionViewCell, MFMailComposeViewControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var imageText: UILabel!
@IBOutlet weak var uploadedTimeLabel: UILabel!
@IBOutlet weak var currentUserLabel: UILabel!
@IBOutlet weak var flagContentButton: UIButton!
var deviceID = [String]()
var parseObject:PFObject?
@IBAction func buttonClick(sender: AnyObject) {
println(deviceID)
let mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
self.showSendMailErrorAlert()
}
}
func configuredMailComposeViewController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self // Extremely important to set the --mailComposeDelegate-- property, NOT the --delegate-- property
mailComposerVC.setToRecipients(["[email protected]"])
mailComposerVC.setSubject("Test subject")
mailComposerVC.setMessageBody("Test mail!", isHTML: false)
return mailComposerVC
}
func showSendMailErrorAlert() {
let sendMailErrorAlert = UIAlertView(title: "Could Not Send Email", message: "Your device could not send e-mail. Please check e-mail configuration and try again.", delegate: self, cancelButtonTitle: "OK")
sendMailErrorAlert.show()
}
// MARK: MFMailComposeViewControllerDelegate
func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
controller.dismissViewControllerAnimated(true, completion: nil)
}
}
错误行:
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
错误代码:
'CollectionViewCell' 没有一个名为 'presentViewController'
成员有什么建议在这里做什么?
请参阅http://stackoverflow.com/questions/32829035/open-camera-from-uitableviewcell-ios了解类似的问题和相关解决方案。 – rmaddy
@rmaddy - 是的,使用'self.presentViewController(mailComposeViewController,animated:true,completion:nil)'。我得到同样的错误.. – IdaEmilie
'self'需要成为视图控制器。 – rmaddy