我有一个带有一些UI自定义的设置包,
问题是如果应用程序关闭并且我更改了设置,当我打开它时它会更新。但是在iOS 4中,如果应用程序在后台并且我更改了设置,则在我关闭应用程序并重新打开它之前它根本不会更新。
我的NSUSerDefaults阅读代码如下:
NSUserDefaults *savedData = [NSUserDefaults standardUserDefaults];
NSInteger size = [savedData integerForKey:@"size"];
在viewWillAppear上,因为每次加载视图时都应调用此方法,因为它正在启动或来自后台。
那里有很多NSUserDefaults代码,但缺少的是[savedData synchronize];这似乎是为了在您的应用中更改默认值时更新默认值,而不是相反(在设置中更改,尝试检索它们)
我在这里缺少什么?
答案 0 :(得分:2)
viewWillAppear
,尽管事实上该视图会出现......
因此,您必须从应用代理中的applicationWillEnterForeground
调用更新方法。
请参阅Why does viewWillAppear not get called when an app comes back from the background?