【发布时间】:2016-06-11 14:14:07
【问题描述】:
我正在为一个应用程序创建一个原型,该应用程序在两个不同的场景中使用完全相同的 UITableViewController 类文件。
- 第一个场景用于显示新创建的“项目”项的列表。在这种情况下,我在 StoryBoard 中使用常规的表视图控制器。
- 第二个场景允许用户在不同的视图中从现有的“项目”项目中进行选择。在这种情况下,我有一个 常规 视图控制器,它有一个 容器视图。容器视图使用嵌入式 tableview 控制器来显示可选列表。
明确地说,这是我的第二种情况的样子:
请记住,两者都使用确切相同的类文件。 第一个场景完美运行,而第二个场景只长按调用didSelectRowAtIndexPath,点击根本不起作用。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("fires") // scenario 2 does not fire until long press
if selectable {
guard let cell = tableView.cellForRowAtIndexPath(indexPath) else { return }
cell.accessoryType = (cell.accessoryType == .Checkmark) ? .None : .Checkmark
}
}
我的问题
将我的表格视图控制器嵌入到容器视图中,我怎样才能让 didSelectRowAtIndexPath 在点击而不是长按时触发?
【问题讨论】:
标签: swift touch didselectrowatindexpath uicontainerview