0

查看我的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 上的视图或数据自动更新?在此处输入图像描述

iPad 模拟器可能会有所帮助。 在此处输入图像描述

4

2 回答 2

0

我也不明白你的问题。。

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

[trackView.table reloadData]; [其他表重载数据];

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

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

在 TrackingViewController.h 中:

- (void)refreshMyTable;

在 TrackingViewController.m 中:

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

在您的 MainViewController.m 操作中,这应该刷新两个表:

- (IBAction)theRefreshingAction{
     TrackingViewController *trackView = [[TrackingViewController alloc] init];
     [trackView refreshMyTable]; //This refreshes Table in trackView
     [mainViewTable reloadData]; //This in MainView
}
于 2013-03-15T10:42:51.543 回答
0

通过使用以下帖子最终使用 NSNotificationCenter:

从 iphone 的不同视图控制器调用函数

就我而言,调用仅包含 [table reloadData]; 的函数 不会工作,但调用我的 performFetch 函数确实(它也称为 [table reloadData]; 在它的末尾)。

于 2013-03-28T03:07:16.797 回答