这个问题是另一个问题的结果,其中我不知道如何使用多任务处理从设置包中更新NSUserDefaults。现在我(感谢@mvds),将refreshDefaults代码放在appwateEnterForeground中的app委托中。
问题是,代码意味着视图中的更改(背景颜色等),因此当我在更改设置后返回应用程序时,将显示视图,之后仅调用applicationWillEnterForeground。
这是,它显示了之前的“主题”,然后它变为新主题。有没有办法克服这个问题,在应用程序显示之前通知更改?结果是丑陋的,我只是没有看到之前可能被调用的任何方法。
答案 0 :(得分:1)
当应用程序进入后台模式时,系统会截取当前状态的屏幕截图。当应用程序返回前台时,它会在加载应用程序时首先显示此屏幕截图。
如果您更改主题颜色,首先看到的是此屏幕截图,然后显示和更新视图。你无法改变这种行为。
您唯一能做的就是尝试在WillEnterBackground
方法中显示不同的内容,例如空UI或闪屏。