【问题标题】:How to push a new viewController when clicking on a tableView cell?单击 tableView 单元格时如何推送新的 viewController?
【发布时间】:2021-11-28 17:45:22
【问题描述】:

我认为我的代码是正确的;但是,当我运行它时,我单击了单元格并且没有任何反应。我必须推送视图控制器的代码在我的 didSelectRowAt 函数中。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        let vc = ChatViewController()
        vc.title = "Jenny Smith"
        vc.navigationItem.largeTitleDisplayMode = .never
        navigationController?.pushViewController(vc, animated: true)
}

谁能解释我在这里做错了什么以及为什么单击不显示新的 ViewController?

【问题讨论】:

  • 你所拥有的对我来说是正确的。 navigationController 是零吗?如果你在这段代码中设置了断点,当你选择一个表格视图项时,调试器会在这段代码中停止吗?
  • 你确定你有导航控制器吗?还要为 vc.view 设置背景颜色,以确保您没有加载清晰的视图并且看不到它。
  • tableview.delegate = self 你这样做了吗?
  • @flanker 是我试图切换到的 vc 的导航控制器,还是我正在编写代码的 vc 的导航控制器?
  • 两者都是一样的——它管理推入/弹出堆栈的 VC。作为一个快速而肮脏的测试,将navigationController?.pushViewController 更改为navigationController!.pushViewController,如果它为 nil,它就会崩溃。 (这只是为了调试,不是为了生产!)

标签: ios xcode uitableview swift5 xcode13


【解决方案1】:

你必须尝试这个来解决问题,如果还有什么问题你可以问我

let VC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChatViewController") as! ChatViewController
self.navigationController?.pushViewController(VC, animated: false)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多