【发布时间】: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