【问题标题】:Update a view - Is this a right approach for tabbarapplication?更新视图 - 这是 tabbarapplication 的正确方法吗?
【发布时间】:2013-02-18 20:26:50
【问题描述】:

来自气象站的数据被保存到数据库中。我只对实时数据感兴趣。通过网络服务,我有这些 XML 格式的数据。并且这些值每 30 秒更新一次。 我想让用户可以随时使用 updateButton 刷新值。

我做了一个如下的方法:

- (IBAction)buttonUpdate:(id)sender {

    [self viewDidLoad];
}

到目前为止它正在工作,但这是正确的方法吗?苹果允许这种方式吗?

最好的方法是什么?

谢谢。

【问题讨论】:

    标签: ios refresh reload


    【解决方案1】:

    重复使用viewDidLoad 不是一个好方法。这是你应该做的:

    将加载此天气的代码放入视图中,并将其从viewDidLoad 中删除,然后将其放入类似的东西中

    -(void)loadWeatherView {
        //Code Here
    }
    

    然后,在viewDidLoad 中,使用[self loadWeatherView]; 在应用首次加载视图时更新视图。

    然后将 buttonUpdate 更改为:

    - (IBAction)buttonUpdate:(id)sender {
    
        [self loadWeatherView];
    }
    

    使用viewDidLoad 可能不会导致问题,但通常您希望在那里执行更多不会经常更改的高内存加载。无论如何,每次视图加载时都会调用它,因此不断地从代码中调用它并不是最好的主意。现在在这种情况下,它可能不是非常重要,但作为一种习惯,我喜欢将尽可能少的实际代码放入viewDidLoad,而只需调用来自viewDidLoad 的方法,这样你就可以访问加载我上面提供的个别内容。

    这样您就可以更新一件事,而不是重新加载不需要重新加载的内容。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      调用“viewDidLoad”方法是不好的风格。您应该创建一个新方法 [self updateData] 并调用它。将与更新本身相关的所有功能都放在那里,它应该会更好地工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 2013-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多