0

UINavigationController이 항상 표시되고이 컨트롤러 외부에서 다른보기 컨트롤러를 모달로 표시해야한다고 알고있는 응용 프로그램이 있다고 가정 해 봅시다 (예 : 명령 패턴을 사용하고 있지 않기 때문에 보기 컨트롤러에 대한 참조를 제공하려는 경우).presentModalViewController : animated를 사용하여 뷰 컨트롤러 외부에 모달 뷰 컨트롤러를 표시하는 방법?

"루트"탐색 컨트롤러를 얻는 안전한 방법이 있으며 presentModalViewController:animated 메서드를 호출합니까?

[UIApplication sharedApplication].keyWindow.rootViewController이지만 I figured out that it was nil during an alert을 사용해 보았습니다.

+0

당신은이'[[(AppDelegate *) [[UIApplication sharedApplication] delegate] 창]을 시도했다는 것을 의미합니다. rootViewController]; –

+0

나는 실제로 잘 작동하는'[UIApplication sharedApplication] .keyWindow.rootViewController'를 의미했습니다. 틀렸어? – David

+0

기술적으로 작동해야합니다! 난 왜 그것을 제공하지 않는 이유는 모르겠다 –

답변

1

스토리 보드 또는 별도의 xib를 사용하고 있습니까?

별도의 xibs를 사용하는 경우 UINavigationControllerapplicationDidFinishLaunching에 설정해야합니다.

네비게이션 컨트롤러를 앱 대리인의 속성으로 만들 수 있습니다.

그런 다음 싱글 톤 앱 대리자를 가져 와서 네비게이션 컨트롤러 속성을 가져 와서 어디서나 UINavigationController에 액세스 할 수 있습니다.

+0

나는 "프로그래밍 방식으로"스토리 보드도 xibs도 사용하지 않고있다. "내장"방식으로 "루트"뷰 컨트롤러를 얻는 방법을 기대했지만 위임 방식을 사용했습니다. 감사합니다! – David

+0

아, xibs 또는 programatically 이런 식으로 작동합니다 : D 조 – Fogmeister