【发布时间】:2012-09-18 14:01:01
【问题描述】:
我的应用使用UITableView 和UINavigationController 在点击表格的一行时显示更详细的视图 - 基本的向下钻取例程。
当我点击一行时,它会突出显示,但不会调用委托方法 tableView:willSelectRowAtIndexPath: 或 tableView:didSelectRowAtIndexPath:(使用调试器进行验证)。
现在是奇怪的部分:
应用程序中还有其他一些表格视图(它们不会向下钻取),但它们都没有出现问题。
如果我快速反复点击该行,经过多次尝试(10 - 20 次是正常的),
tableView:willSelectRowAtIndexPath:和tableView:didSelectRowAtIndexPath:被调用,处理继续正常。此问题仅在运行 iOS 6 的(任何实际)iPad 上发生。它适用于运行 iOS 5 的 iPad,或运行任何 iOS 版本 6 的任何 iPhone。也适用于使用 iOS 5 或 6 的 iPad 模拟器。
因此,在调用委托方法之前,似乎有些东西正在接收点击。但是什么?
我没有使用任何UITapGestureRecognizer,所以that is not the issue。
我没有为表使用多个UITableViewControllers,所以this is also not the issue。
【问题讨论】:
-
检查这些事情: 1. 确认您是代表。 2. 单元格是否包含任何其他视图?可能是 UIScrollView 或它的任何后代? 3. 你在主线程上运行什么要求很高的东西吗?
-
1.是的,我绝对是代表。 2. 一些单元格包含 UIImageView(禁用用户交互),其余的仅包含通常的 UILabel。 3. 不,应用程序处于空闲状态。
-
您是否对主 UIWindow 进行了任何类型的覆盖?
-
您是否正确设置了窗口rootViewController?如果您没有这样做,iOS6 会导致一些事情发生故障。
-
@Mike M 我没有以任何方式覆盖主 UIWindow。
标签: ios ipad uitableview ios6