TableView didselectrow 没有推送另一个视图

问题描述

我也在尝试从带有 tableview 的 viewcontroller 推送到带有 tableview 的另一个视图,

     func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
    print("Clicke\(indexPath.row)")
        guard let vc = storyboard?.instantiateViewController(withIdentifier: "SecAdsViewController") as? SecAdsViewController else { return }
        vc.data = data[indexPath.row]
        self.navigationController?.pushViewController(vc,animated: true)
    }

代码看起来不错,故事板 id 也是正确的,但是当我点击单元格并且没有操作时它没有推送,控制台响应也很好

enter image description here

断点没有问题!

enter image description here

我的故事板

enter image description here

解决方法

正如您在评论中提到的,最好的解决方案是创建一个新的故事板。 试试这个

let storyboard = UIStoryboard(named: "Sections",bundle: "nil")
guard let vc = storyboard.instantiateViewController(withIdentifier: "SecAdsViewController") as? SecAdsViewController else { return }
vc.data = data[indexPath.row]
self.navigationController?.pushViewController(vc,animated: true)

此解决方案假设您在 Sections 故事板中没有 NavigationController,这在任何情况下都是您不想要的,因为您在另一个故事板中已经有了 NavigationController。