在后退导航上更新 UITableViewController
Posted
技术标签:
【中文标题】在后退导航上更新 UITableViewController【英文标题】:Updating UITableViewController on back navigation 【发布时间】:2017-09-25 12:23:39 【问题描述】:我有一个UITableViewController
列出了 api 获取的项目列表。还有另一个处理新项目创建的 ViewController。项目保存成功后。当我按下导航栏上的默认后退按钮以获取项目列表时。该列表未更新(需要重新启动应用才能显示最新结果
viewDidLoad
方法当前处理获取项目的 api 调用。
【问题讨论】:
在 viewWillAppear 中移动 API 工作。 发生这种情况是因为 viewDidLoad 在视图控制器第一次初始化时只被调用一次。在 viewWillAppear 中调用 API 而不是 viewDidLoad,然后重新加载表格视图。 @PallaviSrikhakollu : 如果在viewWillAppear
中调用 api,则无需在 viewDidload
中调用。
@Lion 你是对的,这就是为什么我说在 viewWillAppear 而不是 viewDidLoad 中调用 API。我刚刚提到了 viewDidLoad 功能以便更好地理解。
@PallaviSrikhakollu:您编辑的评论没问题!旧的错了!
【参考方案1】:
您需要做的就是这个(在您的具有 UITableView 的 UIViewController 中)。此时您不必担心单元级别会发生什么。
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
[self.tableView reloadData]; // to reload selected cell
只需将上面的代码添加到您的控制器,当您从第二个视图返回时,您就会发现正确的事情发生了。对 reloadData 的调用告诉 table view 它需要从你的模型中刷新它的单元格,其他一切都很好。
【讨论】:
以上是关于在后退导航上更新 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章