gpt4 book ai didi

ios - 获取 topVC 或 Visible VC 并检查特定 VC 是否在堆栈中

转载 作者:行者123 更新时间:2023-11-28 15:23:26 27 4
gpt4 key购买 nike

用户将元素添加到他们的包中。一旦将元素添加到包中,我们就会进行网络调用以确保该元素仍然可用。网络调用需要几秒钟才能在后台完成。

当一个项目被添加到购物车时,它被存储在一个单例中,可以从应用程序的任何地方访问。像这样:

static let shared = Cart()    
var products = [Product]()

当网络调用返回并且产品不可用时,我们将其从单例中删除。如果在网络调用期间打开购物车 VC,这会导致问题,因为需要重新加载 TableView 。因此,我们需要检查可见的 VC 是否是购物车 VC 并重新加载 TableView 。我还想检查 CartVC 是否在内存中并重新加载 TableView 。因为如果购物车 VC 在内存中并位于另一个 VC 之下,那么它也会有错误数据,当用户关闭顶部的 VC 时,他们将看到错误数据。我该怎么做?

在这被标记为重复之前,我确实检查了其他帖子,但没有一个工作得很好。还有很多方法可以做到这一点,我想知道哪种方法在 swift 3 中最好。

最佳答案

您可以使用通知来做到这一点。想象一下元素不再可用且 VC 打开的情况:

1 - 订阅像“ItemNotAvailableNotification”这样的通知。

2 - 网络调用返回,该项目不再可用。

3 - 发布通知“ItemNotAvailableNotification”。

4 - 在您的 VC 中处理通知。

此外,这种方法还允许您处理“CartVC”和“PreviousVC”中的“不良数据”,在这些情况下用户会认为该商品可用。

关于ios - 获取 topVC 或 Visible VC 并检查特定 VC 是否在堆栈中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com