【发布时间】:2023-03-31 14:19:01
【问题描述】:
当前台应用程序进入后台时(例如,按下 Home 按钮),我如何更改最顶层视图控制器上的元素 之前 到 iOS 拍摄它的快照并启动动画以显示下一屏?
我之所以问,是因为我正在编写一个需要 HIPAA 合规性的应用程序,并且我担心操作系统为执行此动画而拍摄的快照有时包含敏感数据,即使这些数据不也不可见稍后当应用程序进入前台时的瞬间。
我知道视图控制器具有生命周期方法,例如 viewWillDisappear,这可能是可用的,但我有很多控制器,我宁愿在我的 App Delegate 中有一些东西来处理这个问题(例如,通过添加一个不透明的全屏 UIImageView 覆盖),而不必在每个最后一个控制器中为此编写自定义代码。
我尝试将覆盖生成代码放在applicationWillResignActive 中,并且我一直在使用 Apple 的文档和 Google 进行挖掘,但它不起作用。我怀疑屏幕截图是在应用有机会更新屏幕之前拍摄的。
谢谢!
【问题讨论】:
-
您是否尝试过更改
applicationWillEnterForeground中的视图?或者这也是一个静态动画,直到整个恢复缩放动画完成? -
嗯,现在可以了。我不确定是不是因为我将
UIImageView添加到self.window而不是将topViewController从navigationController中拉出并添加到那里,或者是因为我将代码放入applicationDidEnterBackground而不是applicationWillResignActive。无论如何,在前景化时不再显示敏感信息。只要 SO 允许,我将尝试深入研究并写一个更简洁的答案。 -
如果不完全了解 HIPAA 合规性,用户可以随时截取屏幕截图会成为问题吗?据我所知,没有已知的解决方案。
-
好主意,汤米。在我们的案例中,我们不认为这会成为一个问题。工作人员要么完全控制 iPad,并接受有关此问题的教育,要么将其放置在信息亭的外壳中,这样患者就无法使用电源按钮。 IIRC,照片应用程序也可以使用安全设置被禁止。必须进行研发。
标签: ios hipaa backgrounding