查看我的 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模拟器可能会有所帮助。
答案 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];在它的末尾)。