2010-05-31 2 views
0

У меня есть приложение Utility для iPhone 3.1.3. У меня есть мой основной вид, который отлично подойдет. Я перехожу к обратному виду приложения-утилиты и изменяю некоторые настройки. Как я могу вызвать код, который я получил в viewDidLoad, в главном окне, чтобы обновить его, как изменились настройки?Forcing Reload of View при возврате из FlipSideView приложения Utility

Создать общедоступный метод и вызвать его из метода viewDidUnload в обратном направлении? Я могу позвонить по телефону viewDidLoad? Каков наилучший способ сделать это?

ответ

1

Во-первых, вы никогда не должны звонить напрямую 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]; 
} 
Смежные вопросы