【问题标题】:Updating UITableViewController on back navigation在后退导航上更新 UITableViewController
【发布时间】: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:您编辑的评论没问题!旧的错了!

标签: ios uitableview uinavigationcontroller


【解决方案1】:

您需要做的就是这个(在您的具有 UITableView 的 UIViewController 中)。此时您不必担心单元级别会发生什么。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.tableView reloadData]; // to reload selected cell
}

只需将上面的代码添加到您的控制器,当您从第二个视图返回时,您就会发现正确的事情发生了。对 reloadData 的调用告诉 table view 它需要从你的模型中刷新它的单元格,其他一切都很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多