从服务器检索更新后重新加载(表)视图

时间:2012-01-03 16:47:48

标签: objective-c ios cocoa-touch web-services uikit

我正在构建一个iPhone应用程序,它定期从用户浏览应用程序数据时从网络获取更新。

我有一个名为updateManager的类来处理更新过程。 更新过程完成后(0.1-3.0秒后),我的应用程序中的数据可能会被更改,但用户仍在查看旧(错误)数据。当用户查看(向下钻取)tableview并且他选择不再存在数据的单元格时,这会导致很大的问题。

有没有办法从另一个类访问当前视图(控制器)并重新加载它(表)视图?无法将当前视图控制器发送到updateManager,因为用户可能在更新正在进行时更改了视图

编辑:

我查看了这篇文章:Reload a tableView from the AppDelegate但是我觉得用户在更新时切换视图的问题仍然存在吗?

2 个答案:

答案 0 :(得分:1)

不确定这是最好的解决方案。如果使用Observer模式,则会获得更加分离的设计。使用NSNotificationCenter在数据更改时发布通知。然后,任何显示数据的视图都会订阅这些通知,然后可以在此类事件中重新加载表。

答案 1 :(得分:0)

我会使用NSNotification Center

触发NSNotification

带有TableView的ViewController监听通知(如果通知已触发,则重新加载表视图),如果数据发生更改,您的更新类将触发通知。