【发布时间】:2010-11-19 03:03:28
【问题描述】:
我有一个基于标签栏和从 Internet 检索的数据的应用程序。主选项卡显示地图,其他选项卡之一显示使用UITableView 显示的地图中心点周围的事件。如果用户移动地图然后移动到事件页面,我需要刷新表格中显示的事件列表。为此,我请求viewWillAppear:animated: 中的事件,并在完成时(异步)调用表格视图的reloadData 方法。
除非用户在选项卡之间快速点击(例如,显示事件、移动到地图、移动地图、返回事件、返回地图等),否则这会很好地工作。在某些时候,事件数据源(NSArray)在表视图试图访问它时被修改。
这里有一个类似的问题:
UITableView Crashes if Data Source Is Updated During Scrolling
该问题的一个解决方案描述了一个高层次的解决方案,这正是我想要的:在更新表时冻结数据源。然而,我不知道什么时候解冻数据源。问题是当表格更新完成时,我找不到任何通知方式。
有什么想法吗?如何在表格更新时冻结数据源,然后在表格更新完成后解除冻结?
【问题讨论】:
标签: iphone cocoa-touch uitableview viewwillappear