UITableView在解除ViewController后重新加载数据

时间:2013-12-11 06:06:31

标签: objective-c uitableview uiviewcontroller

我有两个viewcontrllers。在一个中有一个tableview,每个单元格都有一个按钮。单击此按钮会显示另一个视图控制器。在该视图控制器中执行某些功能之后,我通过调用[self dismissViewContrller animated:YES completion:nil];来解雇它。现在,在它被解雇后,我想重新加载第一个viewcontroller的tableview中的数据。关于如何做的任何想法? 如果需要,我可以发布代码。

谢谢。

3 个答案:

答案 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];
    }
}

没有那么大的交易要检查,但如果你有大量的数据或其他东西,也许它可能对额外检查有用。