2011-08-06 3 views
0

나는 탭 바의 역할을하는 툴바를 가지고있는 나의 애프터 중 하나에 이상한 디자인 패턴을 가지고있다. 기본적으로이 툴바를 모든 뷰 컨트롤러에 추가하고 툴바 자체에 내 앱의 3 가지 탐색 컨트롤러에 대한 포인터가 포함되어 있습니다. 툴바 버튼 중 하나를 누르면, 현재 윈도우에있는 탐색 컨트롤러를 제거하고 사용자가 선택한 탐색 컨트롤러를 추가 할 수 있어야합니다. 내 문제는 superview에 새 navcontroller를 추가하는 방법을 모르겠습니다. App Delegate 객체를 인스턴스화하고 추가 할 수 있습니까? 또는 애플 리케이션 델리게이트에서 툴바에 포인터를 클래스 변수로 보내야합니까? 어떤 도움을 주시면 감사하겠습니다.대리인의 외부에서 Superview를 설정하는 방법?

답변

1

이 문제를 해결하는 가장 좋은 방법은 내 앱 대행에서 UINavigationController을 전환하는 것입니다. 이 과정에서이 과정에서해야 할 모든 정리 작업을 볼 수 있습니다. 바꿔 얻을 UINavigationController의 한정된 수의가 있다면, 난 그냥이 돌볼 수있는 몇 가지 방법이있을 수 있습니다 :

앱 위임 .H 파일 :

@property (nonatomic, retain) UINavigationController *currentNavController; 

앱 위임하는 .m 파일 :

@synthesize currentNavController = _currentNavController; 

    - (void)loadNavControllerOne 
    { 
     self.currentNavController = ...; // Set up your new controller 
     self.window.rootViewController = self.currentNavController; 
    } 

    - (void)loadNavControllerTwo 
    { 
     // Similar to -(void)loadNavControllerOne 
    } 

요약되었지만 아이디어를 얻을 수 있습니다. 그러나 이러한 컨트롤러간에 상태를 공유해야하는 경우 변경됩니다. 너?

편집 : 앱 대리인에 액세스하려면 [[UIApplication sharedApplication] delegate]으로 전화하십시오.

+0

감사합니다.하지만 내 도구 모음에서 응용 프로그램 대리인에 액세스하는 가장 좋은 방법은 무엇입니까? 애플 리케이션 델리게이트의 새로운 인스턴스를 생성해야합니까, 아니면 애플 리케이션 델리게이트에서 툴바 내의 클래스 변수에 대한 포인터를 보내야합니까? –

+0

내 대답 업데이트 ... – GarlicFries

+0

고마워요, 고맙습니다. –

관련 문제