如何在后退按钮上重新加载上一个视图控制器?
Posted
技术标签:
【中文标题】如何在后退按钮上重新加载上一个视图控制器?【英文标题】:How to reload the previous view controller on back button? 【发布时间】:2015-07-30 14:01:24 【问题描述】:我有两个视图控制器 A 和 B。在 ViewController
A 我正在显示来自服务器的数据。我有导航按钮更新转到ViewController
B。在B上我可以更新ViewController
B上显示的数据。现在数据更新时在服务器上我显示一个警报 '更新成功' 点击确定我转到以前的ViewController
。但我没有看到更新的数据,因为我删除了ViewController
B 来自堆栈,但 A 未重新加载。
返回 ViewController A 的代码
[self.navigationController popViewControllerAnimated:YES];
【问题讨论】:
使用 viewWillappear 方法 使用视图会出现在哪里?@iAnurag 【参考方案1】:我假设您正在从viewDidLoad()
发送网络电话。因此,为了更新您的 viewController A 在viewWillAppear()
【讨论】:
【参考方案2】:视图控制器 A 上的“数据”状态没有改变,您需要刷新它。如果您正在为 -viewDidLoad
中的视图控制器 A 获取数据,请尝试将其移至不同的生命周期方法,例如 -viewWillAppear
。
请记住,-viewDidLoad
仅在视图控制器加载时才会调用,这会发生一次,但是 -viewWillAppear
在它出现之前会被调用,如果您在视图之间来回切换,这将经常发生。
【讨论】:
【参考方案3】:您必须在 viewWillAppear()
中调用您的 API 方法。因此,无论何时您从任何 viewController 返回,您更新的服务器数据都会自行重新加载。
【讨论】:
感谢您的回答@Ranu以上是关于如何在后退按钮上重新加载上一个视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章