2010-05-31 2 views
0

iPhone 3.1.3 용 유틸리티 응용 프로그램이 있습니다. 내 메인보기 괜찮로드. 나는 유틸리티 애플 리케이션의 flipside보기로 뒤집어 몇 가지 설정을 변경합니다. 어떻게 설정을 변경 했으므로 주보기에서 현재 viewDidLoad에있는 코드를 새로 고치려면 어떻게해야합니까?유틸리티 응용 프로그램 FlipSideView에서 돌아올 때보기 다시로드

public 메서드를 만들고 flipside 뷰의 viewDidUnload 메서드에서 호출합니까? viewDidLoad으로 직접 전화합니까? 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1

먼저, viewDidLoad으로 직접 전화하지 마십시오. 아마 아무런 문제가 발생하지는 않지만, 기본 API만으로 호출되는 메소드를 남겨 두는 것이 가장 좋습니다. 일부 뷰 초기화를 configureViewForSettings 또는 그 라인을 따라 새로운 메소드로 이동하십시오.

최상의 방법은 위임을 사용하는 것입니다. 이는 일종의 데이터 또는 알림을 '상위'보기로 되돌려 보내야 할 때 가장 적합합니다. settingsViewChangedSettings:(MySettingsView *)settingsView과 같은 방법으로 새 ​​프로토콜 MySettingsViewDelegate을 만듭니다. 그런 다음 설정보기 컨트롤러에서 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]; 
} 
관련 문제