我试图从自定义 TableViewCell 类中显示 MFMessageComposeViewController,但我收到一条错误消息:“从类 UITableViewCell 和 UIViewController 的多重继承。”我知道 UIViewController 是 MFMessageComposeViewController 所必需的,那么我该如何解决这个问题?
我的代码:
class TableViewCell: UITableViewCell, MFMessageComposeViewControllerDelegate {
var userNumber: String!
@IBAction func callButton(sender: AnyObject) {
UIApplication.sharedApplication().openURL(NSURL(string: "telprompt://\(userNumber)")!)
}
@IBAction func textButton(sender: AnyObject) {
let message = MFMessageComposeViewController()
message.body = ""
message.recipients = ["\(userNumber)"]
message.messageComposeDelegate = self
}
func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {
}
最佳答案
您确实需要一个 UIViewController
来呈现一个 MFMessageComposeViewController
。要解决您的问题,您可以向 TableViewCell
添加一个属性:
var viewController: UIViewController?
您需要在 cellForRowAtIndexPath
函数中分配当前 View Controller - 如果 View Controller 是 TableView 的数据源,这将只是 cell.viewController = self
.
然后,在 textButton
函数中,您可以显示消息编写器:
self.viewController.presentViewController(message, true, nil)
对于didFinishWithResult
中的解雇,只需调用
self.viewController.dismissViewController(true, nil)
关于ios - UITableView 中的 MFMessageComposeViewController (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862286/