如何在TableCell类中使用navigationController.pushViewController?

B K*_* K. -4 uitableview uinavigationcontroller pushviewcontroller ios swift

使用UITableviewcell类来显示表格列表的单元格。我想使用“ navigationController?.pushViewController”从一个屏幕重定向到另一个屏幕,但它在表格单元格类中不支持。那么我如何UIViewcontroller使用pushViewController从表格单元格移动。

我的代码是:

class TableCell: UITableViewCell
{
    let storyBoard : UIStoryboard = UIStoryboard(name: "SubMain", bundle:nil)
    let nextViewController = storyBoard.instantiateViewController(withIdentifier: "DetailReport") as! DetailReport
    nextViewController.aryOfResultList = aryForCreateJSONResult
    cell.inputViewController?.navigationController?.pushViewController(nextViewController, animated: true)

}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。请给我解决我的问题

mah*_*hdi 5

在单元格中声明一个名为 的变量var parent: UIViewController?。在父控制器的函数中cellForRow

cell.parent = self
Run Code Online (Sandbox Code Playgroud)

现在在单元格中你可以打电话

parent?.navigationController.pushViewController
Run Code Online (Sandbox Code Playgroud)

如果您想要的只是在录制单元格时推送视图控制器,则更新,您可以在父控制器中执行以下操作:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
     self.navigationController?.pushViewController(nextViewController, animated: true)    
}
Run Code Online (Sandbox Code Playgroud)