iOS中让Settings Bundle中的变化立即在App中反应出来的两种方法

来源:互联网 发布:毛笔字 知乎 编辑:程序博客网 时间:2024/05/23 19:02

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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];}
0 0
原创粉丝点击