【问题标题】:didSelectRowAtIndexPath doesn't work on xCode 9didSelectRowAtIndexPath 在 xCode 9 上不起作用
【发布时间】:2018-05-17 16:00:28
【问题描述】:

所以我必须在这个非常大的项目上工作,它仍然在目标 C 上。

我只是被要求做一个很小的改变(隐藏一个按钮),所以我这样做了,它构建得很好,一切看起来都很正常,但是项目中的所有 tableView 都不会像 didSelectRowAtIndexPath 中那样做出反应从不被调用(滚动工作,数据正确显示)

与以前相比,唯一改变的是我使用了 xCode 9。

现在,当我使用 xCode 8 构建它时,它又可以工作了,所以至少我们可以继续,但我仍然想知道发生了什么。

我使用与主项目完全相同的逻辑制作了一个较小的项目(单元格是自定义的,您可以滑动等) 当我从头开始时,它工作正常。

所以我觉得这更像是一个 xCode 错误/错误,而不是代码错误。 有人知道吗?

【问题讨论】:

  • 让您在情节提要文件的 tableview 上设置单一选择
  • 在 XCode 9 的故事板中,代表的出口可能没有连接到 viewController,只需尝试删除代表并再次附加到新的 xcode 上,或尝试设置以编程方式委托,
  • @JonSnow 单选确实设置正确
  • @Bonnie 我两种方法都试过了,没用;(
  • @Néodigi 请确认是didSelectRowAtIndexPath 而不是didDeSelectRowAtIndexPath

标签: ios objective-c uitableview xcode8 xcode9


【解决方案1】:

您是否在该 UI 上的任意位置使用过点击? 因为当点击时:UITapGestureRecognizer 在 UI 中确实只有在长按单元格后才起作用

或者你可以在你的 viewdidload 函数中设置

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
gestureRecognizer.cancelsTouchesInView = NO; 

【讨论】:

    【解决方案2】:

    请检查以下内容

    应该是单选

    它应该启用交互

    并检查您是否在所有图层的顶部创建了任何针对其他操作的按钮。

    查看并回复。

    【讨论】:

    • 已正确设置启用单选和交互。底部的 uiTableView 顶部有一个按钮(类似于 fab)但我不认为就是这样,因为除非我真的点击它,否则它不会做出反应
    • 注释按钮代码并检查一次,或检查按钮单击动作样式是否正确设置为内部修饰。
    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2018-03-03
    相关资源
    最近更新 更多