应用级通知注意点

最近要做一个应用的国际化。采用了通知的方法来处理。修改应用语言设置时,发送通知,使所有页面都更新语言。发现有一个页面始终没有改变,想了下大概的可能也无非是这个页面被释放了,或者观察没有就绪。

经过我的仔细检查,我发现,问题出在我把观察放在了viewDidLoad:方法中了,但是,在一个tabbarController中,如果我不去选中该页面,就不会调用这个方法来注册观察者。这样对于这个页面的内容当然没什么影响,因为它们load的时候,语言已经设置好了。但是对于tabbar Item就有影响了,它们错过了更新的时机。

这个非常需要注意!现在我把观察放到了init方法中,就可以使tabbar Item获得更新。因此,iOS的View lifecycle是一个非常微妙的东西,需要理解清楚。

你可能感兴趣的:(应用级通知注意点)