iOS:当应用程序返回前台时恢复以前可见的视图?

时间:2012-03-14 14:25:54

标签: objective-c ios storyboard segue background-foreground

我正在使用故事板开发iPhone(iOS 5+)应用程序。该应用程序的第一个屏幕是一个启动/登录屏幕,用于检查Facebook凭据并使您能够阅读和接受条款和条件。如果存在有效的存储凭证并且先前已接受TOC,则此视图会自动对第一个“真实”应用程序视图(带有三个选项卡的标签栏控制器)进行模态segue(使用交叉溶解效果)。

我目前正在实施后台处理和前景化逻辑。问题是,当按下主页按钮然后返回时,会在恢复正确的前置后视图之前简要显示登录屏幕。 (应用程序的Default.png是登录屏幕背景,所以它可能是实际登录屏幕的背景或背景时间屏幕截图;我还没有测试过更换Default.png来分辨它。)< / p>

这是为什么?据我所知,应用程序的背景应该只是截取屏幕上可见的视图,例如,点击主页按钮,并在返回前景时恢复实际视图功能之前恢复该视图。在这种情况下,它将是标签栏控制器的一个选项卡。登录屏幕和标签栏控制器之间的模态偏差是这里的罪魁祸首还是别的什么?

(我一直觉得从登录界面到第一个“有用”屏幕的交叉溶解模态segue有点脏,因为恕我直言,模态segue似乎意味着你以后会发生什么事情。回到“从”屏幕。我现在正在做的只是无限期地看到模态segue的目标。如果这是问题,如果有人建议更好的显示方法,我会喜欢它过渡离开并“抛弃”登录屏幕。)

2 个答案:

答案 0 :(得分:1)

好的,事实证明这只是关于Default.png的模拟器/设备差异。关于另一个问题的This comment让我想一想。是时候提交错误报告了。

答案 1 :(得分:0)

如果我没记错的话,Apple有一些旧的演示代码可以“记住”导航控制器在进入后台之前显示的视图。

作为免责声明,我没有使用过故事板,所以我不知道你正在做什么的具体细节。

如果是我,我会在启动时创建视图控制器或控制器,然后只有在应用代表的逻辑认为必要时才添加登录屏幕。只有这样,在设置视图层次结构后,我才能呈现所有内容。

这完成了两件事。我的登录屏幕仅存在,并在必要时可见。此外,登录屏幕不会闪烁不明显。哦,作为第三个好处,你可以展示你喜欢的任何视图。

我建议,假设上述演示代码对您不起作用,您需要在NSUserDefaults中保存当前可见视图的某种引用,标记或ID,并在设置时读取它启动时的视图层次结构。