gpt4 book ai didi

ios - UITableView didSelectRowAt 不称为 iOS 10,但适用于 9.3.5

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:07 26 4
gpt4 key购买 nike

关于这个问题有很多问题,但到目前为止我找到的答案都不适用。在这种情况下,该表在 iOS 9.3.5 中可以正常工作,但不适用于 iOS 10(或 10.3.1)

我已经排除了:

  • 没有正确设置委托(delegate)。该委托(delegate)执行 3 个函数,didSelectRowAtheightForRowAteditActionsForRowAt后者是从右向左滑动,它提供了执行与选择行完全相同的功能的选项。。这三个函数在 v9.3.5 上正常工作(通过模拟器和我测试过的旧 iPad 进行测试。)当我通过模拟器或我的 iPhone SE 使用 v10 时,heightForRowAteditActionsForRowAt 有效,但 didSelectRowAt 无效(就此而言 - 我尝试了 willSelectRowAt。它也不适用于 v10。)
  • 任何打印错误(因为它适用于 9.3.5)

我还没有找到任何有关从 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)
}

查看

tableViewCell

最佳答案

为了完整起见,以防万一有人遇到这种奇怪的情况。

问题是我的 UITableViewCell xib。我一定是最初将它设计为 UIView,然后添加了 UITableViewCell。层次结构应该以 UITableViewCell 开始。我将 UITableViewCell 从 View 下方移出(以红色圈出),删除了 View 并重新连接了 IBOutlets。奇怪的是它可以与 iOS 9.3.5 一起使用。

enter image description here

关于ios - UITableView didSelectRowAt 不称为 iOS 10,但适用于 9.3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44447365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com