【问题标题】:Reload (table)view after retrieving update from server从服务器检索更新后重新加载(表)视图
【发布时间】:2012-02-01 16:31:36
【问题描述】:

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

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

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

编辑:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    我会使用 NSNotification Center 触发 NSNotification

    你的 ViewController 和 TableView 监听通知(如果通知被触发,则重新加载你的表视图),如果数据发生变化,你的更新类会触发通知。

    【讨论】:

    • 如果用户在更新发生时关闭了 tableview 怎么办?
    猜你喜欢
    • 1970-01-01
    • 2014-10-14
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    相关资源
    最近更新 更多