Coin163

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

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

相关标签: settings ios bundle

2020腾讯云双十一活动,全年最低!!!(领取3500元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1073

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
入口地址https://www.aliyun.com/minisite/goods

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

原文

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了能够在Settings Bundle中的变化在进入App后能够立即反应出

------分隔线----------------------------