当两个视图一次可见时,从不同的视图更新UITableview

时间:2013-03-14 23:28:54

标签: xcode ipad uitableview

查看我的 iPad 应用,我有几个容器视图。 Containerviews使我能够在一个iPad屏幕上同时显示所有四个iphone视图。一个名为TrackingViewController的视图上有一个UITableView(称为 table ),我想从第二个视图控制器(MainViewController)上的按钮刷新,该按钮也可以在同一个iPad屏幕上看到。我叫代码

 TrackingViewController *trackView = [[TrackingViewController alloc] init];
    [trackView.view setNeedsDisplay];
    [trackView.table reloadData];

在MainViewController按钮的IBAction结束时,数据传输完美,但TrackingViewController上的表本身不会直观更新以显示此数据。

如果我在iPad上运行应用程序时手动启动完全不同的模态视图控制器并在TrackingViewController上将其关闭,则数据会显示出来。当在MainViewController上按下按钮时,如何使TrackingViewController上的视图或数据自动更新可视enter image description here

iPad模拟器可能会有所帮助。 enter image description here

2 个答案:

答案 0 :(得分:0)

我也不明白你的问题..

我唯一看到的是,你想要更新两个UITableViews,但在你的代码中你只是重新加载一个TableView的数据?!?

[trackView.table reloadData]; [otherTable reloadData];

但我真的不明白你的问题......

如果您的其他TableView在另一个类中,请尝试这样的事情......

在TrackingViewController.h中:

- (void)refreshMyTable;

在TrackingViewController.m中:

- (void)refreshMyTable{
      [table reloadData];
}

在MainViewController.m Action中,应该刷新两个表:

- (IBAction)theRefreshingAction{
     TrackingViewController *trackView = [[TrackingViewController alloc] init];
     [trackView refreshMyTable]; //This refreshes Table in trackView
     [mainViewTable reloadData]; //This in MainView
}

答案 1 :(得分:0)

使用以下帖子结束使用NSNotificationCenter:

Calling a function from a different view controller for iphone

在我的例子中,调用一个只包含[table reloadData]的函数;不会工作,但调用我的performFetch函数(它也称为[table reloadData];在它的末尾)。