Невозможно представить в UITableViewCell - PullRequest
0 голосов
/ 09 октября 2018

Следующий код работает в UIViewController, но в моем классе UITableViewCell выдает ошибку

Использование неразрешенного идентификатора «присутствует».

Код является действием:

@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)  
  }
}

Есть ли исправление?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

В основном 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)
    } 
  }
}
0 голосов
/ 09 октября 2018

Вам необходимо связаться с ViewController, который представляет этот TableView.Либо с удаленным уведомлением, либо с делегатом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...