当用户在我的表中选择一行时,我需要使用CoreData加载一堆数据。这需要几秒钟(至少在模拟器上运行时尚未在设备上进行测试,但我认为它仍然会很长)。我想在用户选择一行时显示一个加载弹出窗口(我正在为iPad开发),然后在加载数据后将其消失。
使用UIButton时,我总是通过触发TouchDown和TouchUp方法完成此操作。我把代码显示在TouchDown上的popover,然后在TouchUp中完成我所有的实际工作(所以在这种情况下从CoreData加载)。然后在TouchUp结束时,我关闭了popover。
有没有办法在表格视图中分割触摸的方式与按钮上的触摸相同?
答案 0 :(得分:1)
因此,在我输入问题时,我在willSelectRowAtIndexPath
willSelectRowAtIndexPath
找到了NSIndexPath
中的某些内容,看起来就是可以解决这个问题了。我没有在SO上看到关于此的任何其他主题,所以我想我会在这里使用这个“回答自己的问题 - Q& A”功能,所以也许在将来寻找这个的人会发现它有点更容易。
巨大的FYI区块:
我应该注意didSelectRowAtIndexPath
实际上应该返回void
,与-(void)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//stuff
}
(返回void
不同)。但是,我最初有
libobjc.A.dylib'objc_autorelease:
请注意{{1}}返回类型。 Xcode(版本4.5)允许这样做而没有任何错误或警告(甚至在自动完成列表中为我提供了它)。当我以这种方式运行代码时,我总是在{{1}}中找到一个不可见的断点(也许是因为我启用了“All Exceptions”断点?)。我无法通过此断点,我从未在调试器输出控制台中获得任何调试信息,并且应用程序从未终止。我碰巧再次查看Apple Doc并注意到它应该返回一个NSIndexPath(具体来说,代码应该解释为所选择的索引路径),但如果我没有碰巧看到它,我永远不会知道问题是什么。