Во-первых, вы никогда не должны звонить напрямую viewDidLoad
. Вероятно, это не вызовет никаких проблем, но лучше оставить такой метод, который будет вызываться только базовым API. Просто переместите часть инициализации представления в новый метод, например configureViewForSettings
или что-то в этом роде.
Наилучшим подходом было бы использование делегирования. Это наиболее подходит, когда вам нужно отправить какие-то данные или уведомление в «родительский» вид. Создайте новый протокол MySettingsViewDelegate
с помощью метода settingsViewChangedSettings:(MySettingsView *)settingsView
. Затем на вашем контроллере просмотра настроек добавьте свойство id<MySettingsViewDelegate> delegate
.
Когда настройки изменить вызов метода делегата, как это:
[self.delegate settingsViewChangedSettings:self];
И в главном контроллере представления, при создании/отобразить параметры просмотра, установите себе быть делегатом
mySettingsView.delegate = self;
/* Display the settings view */
Затем где-то:
- (void)settingsViewChangedSettings:(MySettingsView *)settingsView {
/* Settings changed, refresh your view */
[self configureViewForSettings];
}