2010-08-02 41 views
1

我在写定期与同步Web服务同步的iPhone应用程序。一切正常,但不幸的是,在同步之后,如果用户之前访问过,视图中没有看到任何更改。在Internet上同步后刷新/重新加载视图

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

我已经试过这样的事情在我的视图控制器之一:

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

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

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

    } 

但子视图不清爽。有没有强制刷新/刷新视图的方法?

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

回答

1

您可以在桌面上使用:[tableView reloadData];重新加载表格内容。如果你只是想更新视图内容,你可以改变它。比方说,如果你有一个视图类和控制器类MyUIViewMyUIViewControllerMyUIView确实包含一个UILabel * myLabel您可以通过更改控制器内部的标签文字:

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

因此无需迫使更新。

1

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