UITableView 中的 MFMessageComposeViewController (Swift)
MFMessageComposeViewController in a UITableView (Swift)
我试图从自定义 TableViewCell 中显示 MFMessageComposeViewController class 但我收到一条错误消息: "Multiple inheritance from classes UITableViewCell and 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) {
}
你确实需要一个UIViewController
来呈现一个MFMessageComposeViewController
。要解决您的问题,您可以将 属性 添加到您的 TableViewCell
:
var viewController: UIViewController?
您需要在 cellForRowAtIndexPath
函数中分配当前视图控制器 - 如果视图控制器是 table 视图的数据源,这将只是 cell.viewController = self
。
然后,在textButton
函数中,您可以呈现消息作曲家:
self.viewController.presentViewController(message, true, nil)
对于didFinishWithResult
的解雇,只需致电
self.viewController.dismissViewController(true, nil)
我试图从自定义 TableViewCell 中显示 MFMessageComposeViewController class 但我收到一条错误消息: "Multiple inheritance from classes UITableViewCell and 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) {
}
你确实需要一个UIViewController
来呈现一个MFMessageComposeViewController
。要解决您的问题,您可以将 属性 添加到您的 TableViewCell
:
var viewController: UIViewController?
您需要在 cellForRowAtIndexPath
函数中分配当前视图控制器 - 如果视图控制器是 table 视图的数据源,这将只是 cell.viewController = self
。
然后,在textButton
函数中,您可以呈现消息作曲家:
self.viewController.presentViewController(message, true, nil)
对于didFinishWithResult
的解雇,只需致电
self.viewController.dismissViewController(true, nil)