大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
为了能够在Settings Bundle中的变化在进入App后能够立即反应出来,我们必须牢牢守住一个位置:即当App从后台进入前台时.
我们有2种办法在该时刻做一些读取的操作,一种是在- (void)applicationWillEnterForeground:(UIApplication *)application方法中处理,一种是注册UIApplicationWillEnterForegroundNotification通知.
我们分别来看一下,首先是applicationWillEnterForeground方法,很简单,在其中做我们想要的:
- (void)applicationWillEnterForeground:(UIApplication *)application { [_viewController refreshFields]; }
然后是UIApplicationWillEnterForegroundNotification通知,我们可以在视图的某个进入方法里调用:
-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self refreshFields]; UIApplication *app = [UIApplication sharedApplication]; [[NSNotificationCenter defaultCenter]addObserver:self selector: @selector(applicationWillEnterFg:) name: UIApplicationWillEnterForegroundNotification object:app]; }
最后是回调方法的实现:
-(void)applicationWillEnterFg:(NSNotification*)notification{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize]; [self refreshFields]; }