代码之家  ›  专栏  ›  技术社区  ›  user5034511

UITableView中的MFMessageComposeViewController(Swift)

  •  1
  • user5034511  · 技术社区  · 9 年前

    我试图在自定义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 回复  |  直到 9 年前
        1
  •  0
  •   Glorfindel Doug L.    9 年前

    你确实需要一个 UIViewController 呈现 MFMessageComposeViewController 。若要解决问题,可以将属性添加到 TableViewCell :

    var viewController: UIViewController?
    

    您需要在 cellForRowAtIndexPath 函数-如果视图控制器是表视图的数据源 cell.viewController = self .

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

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

    对于 didFinishWithResult ,只要打电话

    self.viewController.dismissViewController(true, nil)