- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
关于这个问题有很多问题,但到目前为止我找到的答案都不适用。在这种情况下,该表在 iOS 9.3.5 中可以正常工作,但不适用于 iOS 10(或 10.3.1)
我已经排除了:
didSelectRowAt
、heightForRowAt
和 editActionsForRowAt
。 后者是从右向左滑动,它提供了执行与选择行完全相同的功能的选项。。这三个函数在 v9.3.5 上正常工作(通过模拟器和我测试过的旧 iPad 进行测试。)当我通过模拟器或我的 iPhone SE 使用 v10 时,heightForRowAt
和 editActionsForRowAt
有效,但 didSelectRowAt
无效(就此而言 - 我尝试了 willSelectRowAt
。它也不适用于 v10。)我还没有找到任何有关从 iOS 9 到 iOS 10 的关于 tableView(:didSelectRowAt)
的 Swift 更改。
背景
我有一个带有相应 xib(“DetailVC”)的 View Controller 。这个 xib 有一个标签,然后在标签下面有一个 tableview。表格的单元格是另一个 xib。
View Controller 通过
呈现let uomVC = DetailVC()
self.navigationController?.pushViewController(uomVC, animated: true)
然后在 DetailVC 中,我使用 NSFetchedDataController 并通过 tableView 数据源委托(delegate)将它连接到 tableview。 (核心数据加载和显示效果很好。)
代码(我会根据需要/要求发布额外的代码 - Swift 3)
viewDidLoad() - 部分
let nib: String = "DetailCell"
let reuseID: String = "detailCell"
tableView.register(UINib.init(nibName: nib, bundle: nil), forCellReuseIdentifier: reuseID)
tableView(:cellForRowAt)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: reuseID) as! IngredientDetailCell
cell.present(ingredient: _fetchedResultsController.object(at: indexPath))
cell.isUserInteractionEnabled = true // Added later as a guess per SO suggestions
return cell
}
为了争论——这不会打印
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Selected a row")
// delegate?.selectedIngredient(_fetchedResultsController.object(at: indexPath))
// self.navigationController?.popViewController(animated: true)
}
查看
最佳答案
为了完整起见,以防万一有人遇到这种奇怪的情况。
问题是我的 UITableViewCell xib。我一定是最初将它设计为 UIView,然后添加了 UITableViewCell。层次结构应该以 UITableViewCell 开始。我将 UITableViewCell 从 View 下方移出(以红色圈出),删除了 View 并重新连接了 IBOutlets。奇怪的是它可以与 iOS 9.3.5 一起使用。
关于ios - UITableView didSelectRowAt 不称为 iOS 10,但适用于 9.3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44447365/
这个问题在这里已经有了答案: UITapGestureRecognizer breaks UITableView didSelectRowAtIndexPath (21 个回答) 5年前关闭。 我在
我在 View 中使用了 Collection View 和一个表格 View ,并且在 didSelect 函数上图像没有改变。 下面是代码: func tableView(_ tableView:
我有一个 tableView,我设置了委托(delegate)和数据源,但是当点击单元格时,didSelectRowAt 函数没有被调用。这是我的代码: private let reuseIdenti
我有一个动态表格,其中显示许多 MKMapItems - 这些项目由 cellForRowAt 显示。但不知何故,如果我点击单元格 didSelectRow 如果我想打印它,将不会返回 map 项:
我正在尝试构建一个带有 tableView 的应用程序,到目前为止我已经达到了填充 tableView 的程度,但是当我按下行时我无法发生任何事情。任何帮助,将不胜感激。如果您缺少一些可以帮助我的代码
我正在尝试将 url 字符串推送到我的 Main,当我按下单元格时它会显示我的主视图 Controller 。 这是我的代码。 #pragma mark - Table view delegate
我会粘贴一些我的代码 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableVi
我正在努力解决我的 xcode 项目中的一个问题。我在 TableView 中显示自定义单元格并使用 didSelectRowAt indexPath: 显示详细 View 。它按照我想要的方式工作,
我有一个包含 3(cell1,cell2,cell3) 个自定义单元格的动态表格 View ,它可以在任何地方重复使用 0 次到 9 次。 (表格 View 中的最大单元格为 27 个单元格)。 这
什么可以让 UITableViewCell 只检测多点触控?如果我用一根手指点击,它不会调用 didSelectRowAtIndex。 这是我的代码: func tableView(_ tableVi
我不知道 didSelectRowAt 方法如何更改数组中的所有元素(在每个索引处)那里有打印语句来可视化结果,因此在单击单元格 1 两次后我得到:1个真真真1个假假假 不知道 indexPath.r
我有一个项目有几个不同的 VC...其中两个有 TableViews 第一个工作得很好,我在那里有一个自定义 View 等。 第二个也是自定义的,它可以很好地填充信息,但与第一个不同...我无法点击它
我对 UITableView 委托(delegate)函数 didSelectRowAt 有疑问。一切正常,但不幸的是 didSelectRowAt 没有被调用。我阅读了其他一些关于该问题的 stac
我在 ViewController 中有一个自定义 UITableView。我的自定义表格具有自定义 UITableViewCells。这是我的 ViewController 中的代码: ViewDi
某些自定义单元格未调用 didSelectRowAt。我还在 tableView 上使用手势识别器。我尝试覆盖 shouldReceive func gestureRecognizer(_ sende
下面的代码应该从数组中调用用户名,并且用户能够点击所需的用户名。对该数组的调用成功,我可以看到用户名,但无法利用它。它甚至不打印“didSelectRowAt”。感谢你的帮助。谢谢。 func tab
正如你在我的代码中看到的,一旦选择了一行但没有成功,我尝试了一些方法将 UIViewTableController 关闭回我的父 ViewController 我的 UITableViewContro
我的 UITableVieController 遇到问题。它没有正确调用我的 didSelectRowAt 函数。我的 UITableView 中有多个部分,但我的代码的另一部分具有相同的确切代码,工
我有一个 UITableView;没有 tableHeaderView 点击一行并触发 didSelectRowAt 返回正确的索引路径。 当我设置 tableHeaderView 属性时,didSe
我正在尝试在我的 UICollectionView 中选择一个单元格,我已经完成了所有工作,包括设置委托(delegate)和数据源,我的 ScrollView 上没有点击手势识别器。 我在 Scro
我是一名优秀的程序员,十分优秀!