更新视图 - 这是tabbarapplication的正确方法吗?

时间:2013-03-04 16:58:44

标签: ios refresh reload

气象站的数据保存在数据库中。我只对实时数据感兴趣.Throug web服务我有这些XML格式的数据。这些值每30秒更新一次。 我想让用户可以随时使用updateButton刷新值。

我做了如下方法:

- (IBAction)buttonUpdate:(id)sender {

    [self viewDidLoad];
}

它到目前为止工作但是这是正确的方法吗? Apple允许这样的方式吗?

最好的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

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

将加载此天气的代码放入视图中,然后将其从viewDidLoad中删除,并将其置于

之类的内容中
-(void)loadWeatherView {
    //Code Here
}

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

然后将buttonUpdate更改为:

- (IBAction)buttonUpdate:(id)sender {

    [self loadWeatherView];
}

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

这使得你可以更新一件事而不是重新加载不需要重新加载的东西。

希望这有帮助!

答案 1 :(得分:1)

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