我正在编写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但是它没有刷新 - 所以我该怎么做?
答案 0 :(得分:1)
[tableView reloadData];
重新加载表格内容。如果您只想更新视图内容,则可以更改它。假设您有一个视图类和一个控制器类MyUIView
和MyUIViewController
和MyUIView
确实包含UILabel * myLabel
,您可以通过以下方式更改控制器内的标签文本:
[((MyUIView *)self.view).myLabel setText:@"This is a new text."];
所以不需要强制更新。
答案 1 :(得分:1)
您可以编写方法“viewWillAppear”,因为您可以编写要重新加载的代码,这可能会从您的数据库中获取数据。此方法将在视图开始加载时执行。