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

Posted

技术标签:

【中文标题】如何在后退按钮上重新加载上一个视图控制器?【英文标题】:How to reload the previous view controller on back button? 【发布时间】:2015-07-30 14:01:24 【问题描述】:

我有两个视图控制器 AB。在 ViewController A 我正在显示来自服务器的数据。我有导航按钮更新转到ViewController B。在B上我可以更新ViewController B上显示的数据。现在数据更新时在服务器上我显示一个警报 '更新成功' 点击确定我转到以前的ViewController。但我没有看到更新的数据,因为我删除了ViewController B 来自堆栈,但 A 未重新加载。

返回 ViewController A 的代码

  [self.navigationController popViewControllerAnimated:YES];

【问题讨论】:

使用 viewWillappear 方法 使用视图会出现在哪里?@iAnurag 【参考方案1】:

我假设您正在从viewDidLoad() 发送网络电话。因此,为了更新您的 viewController AviewWillAppear()

中添加您的网络调用方法

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

您必须在 viewWillAppear() 中调用您的 API 方法。因此,无论何时您从任何 viewController 返回,您更新的服务器数据都会自行重新加载。

【讨论】:

感谢您的回答@Ranu

以上是关于如何在后退按钮上重新加载上一个视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在标签栏控制器视图上创建后退按钮?

如何在 Xcode 中的 UINavigationController 上创建后退按钮?

后退按钮刷新/重新加载 uipickerview 内容

如何在标签栏视图控制器中显示后退按钮?

iOS:如何使用按钮切换 Tableview 行?

视图控制器上的 Xcode / Swift 后退按钮