1

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

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

我在我的一个视图控制器中尝试过这样的事情:

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

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

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

    }

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

我知道当我移动到这个视图时会执行 viewWillAppear 但它并不令人耳目一新 - 那我该怎么做呢?

4

2 回答 2

1

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

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

所以不需要强制更新。

于 2010-08-03T12:41:20.173 回答
1

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

于 2011-01-13T06:57:59.677 回答