在Internet上同步后刷新/重新加载视图

时间:2010-08-02 13:49:13

标签: iphone objective-c cocos2d-iphone viewwillappear

我正在编写iPhone应用程序,它定期与同步Web服务同步。一切正常,但不幸的是,在同步之后,如果他之前访问过它,用户看不到视图中的任何更改。

我需要强制重新加载/刷新一些视图。我怎么能用例如viewWillAppear方法呢?

我在我的一个视图控制器中尝试过类似的东西:

-(void) viewWillAppear:(BOOL)animated   
{
        NSArray* sbw = [self.view subviews];

        UIView* view;
        for (view in sbw) 
        {
            [view setNeedsDisplay];
        }

        [self.view setNeedsDisplay];
        [super viewWillAppear];

    }

但是子视图并不令人耳目一新。是否有任何强制重新加载/刷新视图的方法?

我知道当我移动到这个视图时会执行viewWillAppear但是它没有刷新 - 所以我该怎么做?

2 个答案:

答案 0 :(得分:1)

在tableviews中,您可以使用:[tableView reloadData];重新加载表格内容。如果您只想更新视图内容,则可以更改它。假设您有一个视图类和一个控制器类MyUIViewMyUIViewControllerMyUIView确实包含UILabel * myLabel,您可以通过以下方式更改控制器内的标签文本:

[((MyUIView *)self.view).myLabel setText:@"This is a new text."];

所以不需要强制更新。

答案 1 :(得分:1)

您可以编写方法“viewWillAppear”,因为您可以编写要重新加载的代码,这可能会从您的数据库中获取数据。此方法将在视图开始加载时执行。