我正在构建一个iPhone应用程序,它定期从用户浏览应用程序数据时从网络获取更新。
我有一个名为updateManager的类来处理更新过程。 更新过程完成后(0.1-3.0秒后),我的应用程序中的数据可能会被更改,但用户仍在查看旧(错误)数据。当用户查看(向下钻取)tableview并且他选择不再存在数据的单元格时,这会导致很大的问题。
有没有办法从另一个类访问当前视图(控制器)并重新加载它(表)视图?无法将当前视图控制器发送到updateManager,因为用户可能在更新正在进行时更改了视图
编辑:
我查看了这篇文章:Reload a tableView from the AppDelegate但是我觉得用户在更新时切换视图的问题仍然存在吗?
答案 0 :(得分:1)
不确定这是最好的解决方案。如果使用Observer模式,则会获得更加分离的设计。使用NSNotificationCenter
在数据更改时发布通知。然后,任何显示数据的视图都会订阅这些通知,然后可以在此类事件中重新加载表。
答案 1 :(得分:0)
带有TableView的ViewController监听通知(如果通知已触发,则重新加载表视图),如果数据发生更改,您的更新类将触发通知。