如何在返回按钮上重新加载上一个视图控制器?

9
我有两个视图控制器AB。在A视图控制器上,我展示了来自服务器的数据,并且我有一个名为“更新”的导航按钮,可以跳转到B视图控制器。在B视图控制器上,我可以更新在A视图控制器上显示的数据。现在,当数据在服务器上被更新时,我会弹出一个警告框,显示“更新成功”,点击“确定”后返回上一个视图控制器。但是,由于我从堆栈中删除了B视图控制器,因此我看不到已更新的数据,而A视图控制器没有重新加载。

返回A视图控制器的代码

  [self.navigationController popViewControllerAnimated:YES];

使用viewWillAppear方法 - iAnurag
视图将出现在哪里使用?@iAnurag - TechChain
3个回答

17

我假设您是从viewDidLoad()发送Web调用的。所以为了更新您的A视图控制器,请将您的Web调用方法添加到viewWillAppear()中。


3

在视图控制器A中,您的“数据”状态没有改变,需要刷新它。如果您在-viewDidLoad中为视图控制器A获取数据,请尝试将其移动到不同的生命周期方法,例如-viewWillAppear

请记住,-viewDidLoad仅在加载视图控制器时调用一次,但是-viewWillAppear在出现之前会被调用,如果您在不同的视图之间跳来跳去,这将经常发生。


2
您需要在viewWillAppear()中调用API方法。这样,无论您从哪个视图控制器返回,您更新的服务器数据都将重新加载自己。"Original Answer"翻译成"原始回答"。

谢谢您的回答@Ranu - TechChain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接