我有两个viewcontrllers。在一个中有一个tableview,每个单元格都有一个按钮。单击此按钮会显示另一个视图控制器。在该视图控制器中执行某些功能之后,我通过调用[self dismissViewContrller animated:YES completion:nil];
来解雇它。现在,在它被解雇后,我想重新加载第一个viewcontroller的tableview中的数据。关于如何做的任何想法?
如果需要,我可以发布代码。
谢谢。
答案 0 :(得分:4)
您只需在 firstviewcontroller
中添加以下代码即可-(void)viewDidAppear:(BOOL)animated
{
[tableView reloadData];
}
这样你就可以在每次关闭secondviewcontroller后查看apper时重新加载你的tableview
答案 1 :(得分:1)
您可以在带有tableview的视图控制器上的viewDidAppear中执行此操作。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.tableView reloadData];
}
每次视图控制器出现在屏幕上时,这将强制重新加载tableview。这是第一次出现(因此表视图将在启动时重新加载两次),以及将导航堆栈转换回此视图控制器时。
答案 2 :(得分:0)
有几种方法可以做到这一点。
已经给出的大部分答案的另一个替代方案是检查viewWillAppear中是否存在presentViewController。
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (self.presentedViewController) {
[self.tableView reloadData];
}
}
没有那么大的交易要检查,但如果你有大量的数据或其他东西,也许它可能对额外检查有用。