2013-02-06 2 views
-1

iOS에서 윈도우와 뷰 컨트롤러에 관한 질문이 있습니다. 난 그냥 내 응용 프로그램에서 나는 오늘 작업과는 가질 필요가 있음을 발견하고 아이폰 OS 프로젝트의 응용 프로그램 위임 봐 ...iOS 앱 델리게이트에서 self.window 란 무엇입니까

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 

있습니다.

여기에 질문이 있습니다 :

  1. 이있는 navigationController 내 응용 프로그램의 루트 뷰 컨트롤러는 것을 의미합니까? NavigationController는 UIViewController의 하위 클래스이지만 해당 작업은 네비게이션 기능을 네비게이션 바에 제공하기위한 것입니다. 맞습니까?

  2. self.window 란 무엇입니까? 나는 'view'와 'viewController'의 개념을 이해한다고 생각하지만 'window'가 무엇인지 이해하지 못한다. iPhone에는 한 화면 만 있지만 MacPro에는 두 개의 모니터가있을 수있다. iOS 및 OS X 측면에서 이러한 창 있습니까? 아마도

+0

정당화를위한 몇 가지 의견과 함께 투표하십시오. –

+0

왜이 질문은 투표를 거절합니까? 질문은 다른 사람들에게 명확하고 유용하며 흥미 롭습니다. 아래 표를 위해 투표하지 않았습니다 ... – avenger

답변

0
  1. . self.window.rootViewController는 윈도우의 루트 뷰 컨트롤러를 반환합니다.이 경우 스토리 보드에서 가정합니다. 이 줄이 네비게이션 컨트롤러로 반환 된 객체를 캐스트한다는 사실은 스토리 보드에서 무엇이든지 될 것입니다 (왼쪽 화살표가있는 컨트롤러는 다른 것과 연결되지 않습니다). 캐스트가 정확하다고 가정하면 navigationController.topViewController와 같은 것을 쓸 수 있고 컴파일러는 불평하지 않을 것입니다. 네비게이션 컨트롤러의 기능은 네비게이션 바를위한 기능을 제공하지만, 컨텐츠 컨트롤러의 뷰를 보여주고 topViewController의 뷰는 시작할 때 볼 수 있습니다.

  2. iOS의 창은 UIView의 하위 클래스 인 UIWindow이므로 OS X의 창과 동일하지 않습니다. UIWindow 클래스 참조의 개요 섹션에서 해당 기능에 대한 설명을 확인하십시오. .

관련 문제