ios - 按下行时未调用表视图委托方法 (didSelectRowAt)
问题描述
当用户按下表格视图上的某个单元格/行时,我正在尝试执行 segue。我已经实现了委托协议
extension myVC : UITableViewDelegate
这是我的 didSelectRow 函数
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "searchToOtherUser", sender: self)
}
在前一个函数中还做了一些额外的事情,但是当我在函数中放置一个断点时,我可以看到应用程序永远不会进入这个函数。
我已经看到了前面提到的关于这个主题的一些答案(没有使用用户手势,并且启用了用户与表格视图的交互)。
有谁知道我该如何解决这个问题?
非常感谢安东尼
解决方案
如果正在加载内容并且启用了选择,则要检查的内容是:
- 1)在swift中以编程方式设置委托
- 2)(可选)将 tableview 设置
delegate
为File's Owner
以防您将 tableview 添加到您的UIViewController
inStoryboard
而不是创建一个UITableViewController
(它会自动为您执行此操作)。
检查 1 - 以编程方式设置委托
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
...
}
检查 2(仅适用于在 Storyboard 中添加到 UIViewController 的 TableView)
在情节提要中,Interface Builder
您还应该将 tableview 链接delegate
到File's Owner
:
**检查 2 - 步骤 A) **
可能不是File's Owner
在左侧栏中明确说明,而是您可能必须这样做:
检查 2 - 替代步骤 A)
然后delegate
像这样选择:
检查 2 - 步骤 B)
推荐阅读
- flutter - BLoC 正在返回一个空快照。BLoC 流来自 Sqflite
- sql-server - 无法在 docker 容器内连接 SQLServer
- css - css:如何设置元素的位置?
- r - while 循环使用
- html - 当一个地标元素内部也有一个标题时,它是否应该有一个 aria-label?
- html - 如何隐藏和显示表格单元格文本?
- python-3.x - 从线程使用 tkinter 虚拟事件
- javascript - 水平居中导航栏(Bootstrap)项目
- windows - Windows 7 上的 ASDF 无法使用 CLISP 或 SBCL 加载 ASD 文件
- python - Python 显式定义对象属性类型