Вместо того, чтобы вызывать много дополнительных нагрузок путем повторной синхронизации на каждом экране просмотра, вы можете сделать так, чтобы каждый из ваших контроллеров представления регистрировался как наблюдатель уведомлений, когда они загружаются (viewDidLoad), и всякий раз, когда вы изменяете свои настройки, вы публикуете уведомление "settings_changed". (Это невероятно полезный шаблон для отделения объектов, которые должны взаимодействовать).
Таким образом, каждый из ваших методов viewDidLoad будет иметь следующее:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(refreshDefaults)
name:@"Defaults_changed"
object:nil];
viewDidUnload отменяет регистрацию vc:
[[NSNotificationCenter defaultCenter]
removeObserver: self
name: @"Defaults_changed"
object: nil];
Обработка события:
- (void) refreshDefaults {
// re-load your defaults here
}
Любое место, которое вносит изменения, будет делать это:
[[NSNotificationCenter defaultCenter]
postNotificationName:@"Defaults_changed"
object: nil];