Это происходит потому, что вы больше не интересуетесь контроллером представления и у вас нет доступа к методам стека навигации ...
Отличный способ решить эту проблему, вы можете просто использовать шаблон делегатаиспользуя протокол.
Таким образом, вы можете создать протокол с действием, как показано ниже:
protocol CustomCellDelegate {
func didTapAnyButton(_ anyParam: String)
}
В UITableViewCell вы просто создаете это свойство делегата:
weak var delegate: CustomCellDelegate?
Ps: я создал со слабым, чтобы избежать утечек памяти, и необязательным, потому что свойство будет инициализировано со значением nil, и viewController установит значение этого свойства после того, как оно уже было создано.
Итак, в вашем ViewController вы можете просто реализовать этот протокол:
extension ViewController: CustomCellDelegate {
func didTapAnyButton(_ anyParam: String) {
performSegue()
}
}
По крайней мере, вы должны просто назначить делегат ViewController при создании экземпляра CustomCell, учитывая, что у вас есть UITableViewCell с именем CustomCell:
let cell = tableView.dequeReusableCellWithIdentifier(“CustomCel”) as! CustomCell
cell.delegate = self
После этого вы можете просто вызвать метод делегата tapAnyButton для действия, которое вам нужно реализовать, напримерe:
delegate.didTapAnyButton(“Some Param that I need to pass on segue method.”)
Поэтому, когда вы вызываете этот метод, ViewController, который назначил этот протокол делегата, будет запущен!А в ViewController у вас есть доступ к методу segue.