UITableView didSelectRowAtIndexPath:在第一次点击时不被调用
我遇到了UITableView's
didSelectRowAtIndexPath
。
我的表设置,所以当我select行时,它初始化一个新的视图控制器,并推动它。
我第一次点击表中的任何一行,该方法不会被调用。 一旦我select另一行,它开始正常工作。
我通过在didSelectRowAtIndexPath
上设置断点来validation这一点。 当我添加一个NSLog
的方法,我看到当我select最后推新视图控制器的第二行,我看到两个日志语句同时出现在控制台中。
有什么build议么?
你意外键入的任何机会做De selectRowAtIndexPath?
同时检查xib文件中表格视图的select属性。 根据需要使用“单选”或“多选”。
我遇到以下问题:
- 第一次点击行 – >没有效果,没有select, 从来没有
- 第二次点击并遵循 – >正确的select行为, 总是
在我的情况下,我的错误是检查在界面生成器Show Selection on Touch
。 您可以在IB中取消选中它:
希望能帮助别人
检查您是否在class级中设置了任何手势识别器。 删除手势为我工作。
我甚至发表了这个答案,因为我认为明星的types是为了performance自己。
我有这个问题的变化,并已检查其他解决scheme。 在我的表格视图中,它不是处理我的表格的最后一行的第一个水龙头。 它突出显示它,但是没有调用didSelectRowAtIndexPath
。 所有其他行工作正常。 但是,如果我把表格反弹,那么它似乎解决了这个问题(但是你必须处理一个tableview反弹)。
UITableViewCellSelectionStyleNone被设置为显示该问题的单元(ios9)。
我已经结束了通话
[tableView deselectRowAtIndexPath:indexPath animated:NO];
第一件事
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
这是不一样的,但是足够好。 让我想知道ios10带来了什么样的表破坏。
SWIFT 2
确保你有这个设置为true:
self.tableView.allowsSelection = true
把这个放在你的viewDidLoad()
和super.viewDidLoad()
之前,
SWIFT 3
如果你在一个不是UITableViewController
的类中使用Swift 3,并且你正在使用UITableViewDelegate
,那么你可能需要使用方法title:
@objc(tableView:didSelectRowAtIndexPath:) func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){...}
这工作对我来说,虽然我刚刚将我的项目迁移到Swift 3.这是相当新的,所以这可能会稍后修复。
didSelectRowAt函数没有在我的应用程序中第一次或第二次敲…我正试图解决问题找不到任何解决scheme。 但突然我知道,我正在使用view.animation颜色更改…委托方法没有被调用,而animation仍然存在