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

Objective c UITableView在解除ViewController后重新加载数据,objective-c,uitableview,uiviewcontroller,Objective C,Uitableview,Uiviewcontroller,我有两个取景器。其中有一个表格视图,每个单元格上都有一个按钮。单击此按钮后,将显示另一个视图控制器。在该viewcontroller中执行某些功能后,我通过调用[self dismissViewContrller animated:YES completion:nil]将其解除;现在,在它被解除后,我想在第一个viewcontroller的tableview中重新加载数据。有什么办法吗? 如果需要,我可以发布代码 谢谢。您可以在视图中执行此操作。视图显示在带有tableview的视图控制器上 -

我有两个取景器。其中有一个表格视图,每个单元格上都有一个按钮。单击此按钮后,将显示另一个视图控制器。在该viewcontroller中执行某些功能后,我通过调用[self dismissViewContrller animated:YES completion:nil]将其解除;现在,在它被解除后,我想在第一个viewcontroller的tableview中重新加载数据。有什么办法吗? 如果需要,我可以发布代码


谢谢。

您可以在视图中执行此操作。视图显示在带有tableview的视图控制器上

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidAppear:animated];
  [self.tableView reloadData];
}

这将迫使您的tableview在每次视图控制器出现在屏幕上时重新加载。这是它第一次出现,因此表视图将在启动时重新加载两次,我想也是在将导航堆栈备份到此视图控制器时。您可以在视图中执行此操作,并在视图控制器上显示表视图

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidAppear:animated];
  [self.tableView reloadData];
}

这将迫使您的tableview在每次视图控制器出现在屏幕上时重新加载。这是它第一次出现,因此我认为表视图将在启动时重新加载两次,以及在将导航堆栈备份到此视图控制器时重新加载两次


使用此功能,您可以在关闭secondviewcontroller后每次出现视图时重新加载tableview,只需在firstviewcontroller中添加以下代码即可


使用此功能,您可以在每次关闭secondviewcontroller后出现视图时重新加载tableview。有多种方法可供选择

除了已经给出的大多数答案之外,还有一个额外的选择,就是检查ViewWill中是否有presentedViewController

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated]; 
    if (self.presentedViewController) {
        [self.tableView reloadData];
    }
}

这不是什么大问题,但如果你有大量的数据或其他东西,可能对额外的检查很有用。

有几种方法可以组合使用

除了已经给出的大多数答案之外,还有一个额外的选择,就是检查ViewWill中是否有presentedViewController

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated]; 
    if (self.presentedViewController) {
        [self.tableView reloadData];
    }
}

检查没有什么大不了的,但是如果您有大量的数据或其他东西,可能对额外的检查很有用。

将代理设置为重新加载第一视图控制器OK。。。。具体怎么做?在ViewWillExample方法中添加tableview重新加载数据方法设置委托以重新加载第一个视图控制器OK。。。。具体怎么做?在ViewWillAppeard方法中添加tableview重载数据方法