2010-01-04 6 views
0

나는 탭 바 앱을 가지고 있습니다. 컨트롤러 중 하나는 "환경 설정 페이지"입니다. 내가 달성하려고하는 것은 응용 프로그램 대리인의 applicationWillTerminate 메서드에서 "환경 설정 페이지"컨트롤러에있는 uiswitch ivar에 액세스하는 것이지만 기본 IUSwitch 값만 가져옵니다. 여기 App Delegate에서 다른 View Controller IBOutlet에 액세스하기

코드입니다 :

- (void)applicationWillTerminate:(UIApplication *)application { 
    SettingsController *settings = [[SettingsController alloc] initWithNibName:@"SettingsView" bundle:nil]]; 
    NSLog(@"settings preference value: %d", [settings isOn]); 
} 

답변

0

당신은 본질적 물론 원래 SettingsController의 설정 바르에 대한 참조를 포함하지 않습니다 SettingsController의 새로운 또 다른 인스턴스를 생성하기 때문에이 늘 작동합니다. 당신이해야 할 일은 어딘가에서, 애플 리케이션 델리게이트 또는 싱글 톤 객체에서 원래 SettingdController에 대한 참조를 저장하는 것입니다.

Here's a good blog 위의 경우 앱 위임 또는 싱글 톤 메서드를 사용하여 전역 참조를 전달할 수 있습니다. 나는 개인적으로 싱글 톤 방법을 사용할 것이다.

+0

당신이 옳습니다. (필자는 현재의 방법론에 결함이 있음을 알았습니다.) 내가하고있는 일을 성취 할 수있는 방법이 있습니까? 아니면 다른 길로 가야합니까? –

+0

이 문제를 해결하는 방법에 대한 답변에서 제공된 링크를 참조하십시오. – ennuikiller

관련 문제