在按下导航栏中的后退按钮并弹出视图 B 后,更新位于视图 B 后面的视图 A

Updating view A that was behind view B after the back button in the navigation bar is pressed and view B is popped

我有两个视图 A 和 B,以便从 A 转到 B 我只是推送新视图,在视图 B 中,我执行了一些操作来更新导航栏的 UIBarButton 项的 badgeValue。 (比如将商品添加到购物车)

当我使用 navigationBar 后退按钮返回视图 A 时,UIBarButton 项显示之前的 badgeValue,而不是更新的 badgeValue,我猜这是因为当您按下后退按钮时,视图 B 弹出显示视图 A,其中保持原样,没有任何变化,所以我需要一种方法告诉视图 A 在返回后更新自身。

如果我没有返回查看 A,而是返回到 rootViewController,badgeValue 已更新,我想当我转到 rootViewController 时,会读取 viewDidLoad 中的代码并更新 badgeValue。

关于如何更新位于刚刚弹出的另一个视图之后的视图的任何想法?

编辑

@silicon_valley 答案是正确的,但它不适用于 MikeMTOL 的库,因为它有问题,对于 Swift 用户,我建议改为使用这些扩展。 -> link

您可以添加代码来更新 viewWillAppear 中的徽章值。这将确保每次视图返回屏幕时都会更新该值(而不仅仅是第一次创建时)。