AppDelegate 인스턴스 변수 참조
탐색 기반 애플리케이션 템플릿을 기반으로하는 프로젝트가 있습니다. AppDelegate에는 메서드 -applicationDidFinishLoading:
와 -applicationWillTerminate:
. 이 메서드에서 저는 애플리케이션 데이터를로드 및 저장하고 인스턴스 변수에 저장합니다 (실제로는 객체 그래프입니다).
응용 프로그램이로드되면 NavigationConroller가있는 MainWindow.xib를로드하고 차례로 RootViewController를 갖습니다. RootViewController nibName
속성은 RootView (실제 컨트롤러 클래스)를 가리 킵니다.
내 수업에서 -applicationDidFinishLoading:
메서드 에서 만든 객체를 참조하여 참조를 얻고 싶습니다.
누구든지 그 방법을 말해 줄 수 있습니까? 프로그래밍 방식으로 만든 개체를 참조하는 방법을 알고 있지만 NIB 파일 내에서 중간 단계가 수행 되었기 때문에 다시 스레드로 돌아가는 방법을 알아낼 수없는 것 같습니다.
앱 어디에서나 액세스해야하는 변수 (일반적으로 모델 데이터 구조)의 경우 AppDelegate 클래스에서 선언합니다. 참조해야하는 경우 :
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
//and then access the variable by appDelegate.variable
질문을 이해하면 AppDelegate 개체의 멤버 변수 / 속성을 참조하고 싶습니까? 가장 간단한 방법은 [[UIApplication sharedApplication] delegate]를 사용하여 객체에 대한 참조를 반환하는 것입니다.
window라는 속성이있는 경우 다음을 수행 할 수 있습니다.
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
//do something with mainWindow
다음은 iOS4.0 이상을위한 잘 정의 된 휴대용 대안입니다.
UIApplication *myApplication = [UIApplication sharedApplication];
UIWindow *mainWindow = [myApplication keyWindow];
UIViewController *rootViewController = [mainWindow rootViewController];
또는 한 줄로
UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
창의 rootViewController
속성 (예 : IB) 을 설정하는 것을 잊지 마십시오. 그렇지 않으면 잭이됩니다.
매크로를 정의하고 어디서나 사용하십시오!
#define appDelegateShared ((AppDelegate *)[UIApplication sharedApplication].delegate)
내 코드에서 :-
UIViewController *rootViewController = appDelegateShared.window.rootViewController;
참고 URL : https://stackoverflow.com/questions/231947/referencing-appdelegate-instance-variables
'IT story' 카테고리의 다른 글
JTable에 행을 추가하는 방법은 무엇입니까? (0) | 2020.09.17 |
---|---|
C #에서 데이터를 문자열에서 long으로 어떻게 변환 할 수 있습니까? (0) | 2020.09.17 |
iOS의 NSURLConnection 및 기본 HTTP 인증 (0) | 2020.09.17 |
JQuery 또는 JavaScript : 앵커 태그 하이퍼 링크를 클릭하는 동안 Shift 키를 눌렀는지 확인하는 방법은 무엇입니까? (0) | 2020.09.17 |
jQuery UI datepicker에서 날짜를 얻는 방법 (0) | 2020.09.17 |