2016-09-05 5 views
0

나는 뷰 B (제시된)에 의해 푸시되고 뷰 C (푸시 된)에 의해 푸시 됨으로써 viewController 계층에 추가 된 viewController A를가집니다.전체 viewController hierachy를 다시 설정할 수있는 방법이 있습니까?

ROOT -> ...- (- 본 -) -> B - (- 푸시 -) ->를

ROOT -> ...- (- 푸시 -) -> C - (- 푸시 -) -> A

그리고 지금 나는 viewController에 window.rootViewController을 변경해야하는 버튼이 있지만 두 가지 조건 모두에서 기능을 올바르게 할 수 없습니다. 호출 않는다는 표시 뷰 완료 블록이 없을 때 때문에

I가 [self.navigationController popToRootViewControllerAnimated:<#(BOOL)#>];를 사용

, 그것은,

은 또한 [[[UIApplication sharedApplication] keyWindow].rootViewController dismissViewControllerAnimated:YES completion:<#^(void)completion#>];이 해결책이 아니다 제시된보기 B.을 해제하지 않을 것이다.

두 메서드를 결합하면 계층 구조의 모든 viewController에 매개 변수를 전달할 때만 작동한다고 생각합니다.

viewController 계층 구조를 지우는 방법이 있습니까? 다른 해결책이 있습니까? 당신이 좋아하는 응용 프로그램에서 어디에서 rootViewController을 설정할 수 있습니다

+0

컨트롤러 A를 보려면 컨트롤러 C를 보시겠습니까? –

+0

@Tepmnthar : 왜 B 뷰가 해제 될 것입니까? 이를 위해서는'[self.navigationController dismissViewControllerAnimated : YES completion : nil];을 수동으로 작성해야하며, 왜 rootviewcontroller가 해제 될까요? Rootviewcontroller는 절대로 해산되거나 터지지 않습니다. – Poles

+0

다시 rootview 컨트롤러를 다시로드하십시오. –

답변

0

,

AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate]; 
appDelegate.window.rootViewController = @"desired root VC"; // instatntiate your VC and set as root VC of your window 

그리고 그 클래스에 AppDelegate.h를 구현하는 것을 잊지 마세요.

+0

현재 내 물건은 이와 비슷한 것입니다. 그러나 첫 번째 조건에 직면 할 때 '현재보기'와 '원하는 루트 VC'가 모두 새로운 계층 구조에 포함됩니다. 나는 이유를 알지 못한다. 아마도 제시된 뷰는'dismiss'에 의해서만 제거 될 수있다. – Tepmnthar

관련 문제