UITableView(Swift)中的MFMessageComposeViewController

时间:2015-08-06 17:36:39

标签: ios swift uitableview uiviewcontroller

我试图在自定义的TableViewCell类中显示MFMessageComposeViewController,但是我收到一条错误消息:" UITableViewCell和UIViewController类的多重继承。"我知道MFMessageComposeViewController需要UIViewController,所以我该如何解决这个问题?

我的代码:

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) {


}

1 个答案:

答案 0 :(得分:0)

您确实需要UIViewController来展示MFMessageComposeViewController。要解决您的问题,您可以向TableViewCell添加属性:

var viewController: UIViewController?

您需要在cellForRowAtIndexPath函数中分配当前视图控制器 - 如果视图控制器是表视图的数据源,那么这只是cell.viewController = self

然后,在textButton函数中,您可以显示消息编写器:

self.viewController.presentViewController(message, true, nil)

对于didFinishWithResult中的解雇,请致电

self.viewController.dismissViewController(true, nil)