Ios 如何从uitableviewcell类调用segue?非控制器
不是控制器。我想从customcell.swift类中调用segueIos 如何从uitableviewcell类调用segue?非控制器,ios,swift,uitableview,segue,Ios,Swift,Uitableview,Segue,不是控制器。我想从customcell.swift类中调用segue 另外,segue方法的preparefor不会显示,这是因为您没有更多地进入视图控制器,并且您没有访问导航堆栈方法的权限 解决这个问题的一个很好的方法是,您可以使用协议来使用委托模式 因此,您可以创建一个协议,其操作如下所示: protocol CustomCellDelegate { func didTapAnyButton(_ anyParam: String) } 在UITableViewCell中,只需创建此委
另外,segue方法的preparefor不会显示,这是因为您没有更多地进入视图控制器,并且您没有访问导航堆栈方法的权限 解决这个问题的一个很好的方法是,您可以使用协议来使用委托模式 因此,您可以创建一个协议,其操作如下所示:
protocol CustomCellDelegate {
func didTapAnyButton(_ anyParam: String)
}
在UITableViewCell中,只需创建此委托属性:
弱var委托:CustomCellDelegate?
Ps:我已经用弱创建了以避免内存泄漏,并且是可选的,因为属性将用nil值初始化,并且viewController将在创建后将该值设置为此属性
因此,在ViewController中,您可以实现以下协议:
extension ViewController: CustomCellDelegate {
func didTapAnyButton(_ anyParam: String) {
performSegue()
}
}
至少在实例化CustomCell时,您应该只分配ViewController委托,因为您有一个名为CustomCell的UITableViewCell:
let cell = tableView.dequeReusableCellWithIdentifier(“CustomCel”) as! CustomCell
cell.delegate = self
之后,您可以在需要执行的操作处调用委托方法tapAnyButton,例如:
delegate.didTapAnyButton(“我需要传递给segue方法的某个参数”)
因此,当您调用此方法时,将触发分配此委托协议的ViewController!在ViewController中,您可以访问segue方法。您肯定可以在中找到答案。