以下代码在UIViewController
中有效,但是在我的班级中,UITableViewCell
却给出了错误
使用未解决的标识符“ present”。
代码是一个动作:
@IBAction func linkAction(_ sender: Any) {
let linkString = self.linkText.text
if let requestUrl = URL(string: linkString!) {
let safariVC = SFSafariViewController(url: requestUrl)
present(safariVC, animated: true)
}
}
有修复程序吗?
答案 0 :(得分:0)
您需要与提供此TableView的ViewController通信。要么带有远程通知,要么是委托。
答案 1 :(得分:0)
在主UITableViewController中:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "idCell", for: indexPath)
cell.viewController = self
}
在UITableViewCell类中:
class TableViewCell: UITableViewCell {
weak var viewController: UIViewController?
@IBAction func linkAction(_ sender: Any) {
let linkString = self.linkText.text
if let requestUrl = URL(string: linkString!) {
let safariVC = SFSafariViewController(url: requestUrl)
viewController?.present(safariVC, animated: true, completion: nil)
}
}
}