ios - 如何根据 Swift 中的条件更新全局变量的相应副本?
问题描述
所以我在视图控制器中有 3 个全局变量(我们称它们为 A、B、C),当应用程序导航到和离开此视图控制器时,我需要更新它们以保留过滤器选择的状态。我在其他 2 个视图控制器之间共享一个过滤器视图控制器,因为它们都引用它。但是,他们需要使用自己的 3 个全局变量集,以确保根据不同的标准保存和清除这些变量的状态。
基本上,我有 2 个具有相同高级过滤器 UI 的相似页面。应用过滤器后,我将状态保存到其中 3 个变量中,以便在再次调用它们时恢复它们在 UI 中的状态。但是,VC1 的过滤器状态在整个应用程序生命周期中保持保存,而 VC2 的过滤器状态仅在用户在该页面上时保存。如果用户离开,VC2 的过滤器选择状态将被重置。鉴于我必须为两者管理 2 个全局变量副本,在 filterVC 中保存单独状态的最佳方法是什么?
到目前为止,我将使用基本的 if 条件检查来查看过滤器是从哪个页面引用的,以确定要读取/写入的全局变量的版本。每次引用这些全局变量(13 个实例)时,我都会进行 if 条件屏幕检查以读取或写入相应 VC 的全局变量。请注意,过滤器 UI 是一个独立的全屏页面,它有自己的 VC,在单击按钮时会调用它,所以为了在过滤器 UI 被关闭并重新打开时恢复 VC2 在 filterVC 中的选择状态,我有在全局变量中建立该状态,以便可以在 filterVC 中访问它。然而,即使这种方法有效,它似乎也不是最理想的,所以我正在寻找一种更好的方法来解决它。
为简单起见,请参见下文:
2个视图控制器:VC1、VC2
VC1、VC2 使用的 3 个全局变量的单独副本:A、B、C
1个共享过滤器UI视图控制器:filterVC
解决方案
推荐阅读
- php - 如何在加载js之前使用来自url的值设置cookie
- sql - 如果它与当前值相同,则忽略最后一个值
- python - 删除类方法python生成的所有变量(类)
- asp.net - 我可以将会话值传递给变量,然后将其保存到另一个 guid 类型变量吗
- latex - sty 颜色缺失问题 Beamer Poster JHR
- go - 格式字符串中没有占位符
- c# - Xamarin 选项卡式页面选项卡没有填满空间?
- vb.net - 如何以编程方式向我的 Windows 窗体添加一个按钮,单击该按钮将打开一个宏?
- jpa-2.1 - JPQL CreateQuery 与 SYSDate 比较
- javascript - 对数据库的 AJAX 请求