Objective c iOS:在后台更改视图不会刷新应用程序返回前台之前看到的内容

Objective c iOS:在后台更改视图不会刷新应用程序返回前台之前看到的内容,objective-c,ios,xcode,cocoa-touch,Objective C,Ios,Xcode,Cocoa Touch,好的,我遇到了这个问题:我有一个应用程序,它有一个登录屏幕,每次应用程序进入后台并返回时都会显示出来。问题是,在应用程序返回前台后,前一个屏幕会出现几秒钟,因为系统只刷新加载后看到的内容。现在需要的是在应用程序返回前台之前完成转换。是的,我正在ApplicationIdentinterBackground的app delegate上进行转换。在每一个其他的后/前过渡方法中尝试,结果相同。代码工作正常,但在登录屏幕出现之前屏幕会闪烁 完整代码如下: - (void)applicationD

好的,我遇到了这个问题:我有一个应用程序,它有一个登录屏幕,每次应用程序进入后台并返回时都会显示出来。问题是,在应用程序返回前台后,前一个屏幕会出现几秒钟,因为系统只刷新加载后看到的内容。现在需要的是在应用程序返回前台之前完成转换。是的,我正在ApplicationIdentinterBackground的app delegate上进行转换。在每一个其他的后/前过渡方法中尝试,结果相同。代码工作正常,但在登录屏幕出现之前屏幕会闪烁

完整代码如下:

    - (void)applicationDidEnterBackground:(UIApplication *)application
       {               
           if (!([LogicCore loadPass] == nil || [[LogicCore loadPass] isEqualToString:@""])) //a password is set, 
           {
               [self.window.rootViewController dismissModalViewControllerAnimated:YES];//go back to the rootview, the login screen

           }
       }

尝试在
应用程序willenterforeground:
中进行调用,它“让您知道您的应用程序正在从后台移回前台,但尚未激活。”


您是在转换发生后进行的(显示视图后更改将“排队”进行)-您想在之前进行更改,因此您可以使用
will
方法。

我忘记了这一点,但当用户退出应用程序时,您可以退出应用程序。这里唯一真正的问题是,当应用程序加载时,他们会再次看到你的启动屏幕

要在后台(挂起)时退出应用程序,请将“应用程序不在后台运行”-原始键:
UIApplicationExitsOnSuspend
设置为是


这不是一个理想的解决方案,但这是我目前唯一能找到的解决方案。

我敢肯定这不会奏效。似乎苹果iOS为显示的应用程序拍摄了快照。我在过去测试过这一点,只要应用程序处于完全聚焦状态(观看快照增长到屏幕的全尺寸),您所做的更改就会立即出现。您是否尝试过将代码放入
应用程序willresignactive:
?在同一个话题上有一个悬赏问题。我认为你需要在应用程序背景化之前对UI进行更改,因为我相当确定iOS会截取应用程序的屏幕截图,直到应用程序全屏显示,然后你会看到你的更改(因此闪烁)。请注意,我在
applicationWillResignActive:
中成功地进行了更改,但没有像您这样尝试更改视图。将代码放在applicationWillResignActive,结果相同。我刚刚向apple提交了此错误: