我将实现一个特定ViewController
的 - 每次我的应用程序进入前台时都会弹出 - 需要访问密码。
由于该应用程序已经成熟且有点复杂,我宁愿将此密码屏幕作为一个单独的 ViewController 处理,它出现在其他 VC 之上,通过诸如 applicationDidBecomeActive 之类的方法从 AppDelegate 调用:
if (self.pwdVc==nil)
self.pwdVc = [mainStoryboard instantiateViewControllerWithIdentifier:@"passwordScreen"];
[self.window.rootViewController presentViewController:self.pwdVc animated:NO completion:nil];
这种方法的问题似乎是:当应用程序进入前台时,密码 ViewController 尚未绘制在屏幕上,并且在短时间内,真正的应用程序屏幕清晰显示。
即使我applicationDidEnterBackground
提前触发在 中显示密码 ViewController,当应用程序回到前台时,实际的屏幕重绘总是会发生,从而不必要地显示应用程序屏幕。
任何人都可以建议最合适的方法让这个密码屏幕立即隐藏底层的 ViewControllers 吗?
alpha 设置从 0.0 切换到 1.0 的方法似乎也需要一些时间才能显示出来,并且到目前为止还没有工作。
谢谢!