2014-10-17 4 views
-1

지금 보류중인 아키텍처는 다음과 같습니다.다른 NSViewController에 포함 된 NSViewController에서 NSView에 액세스하는 방법

2 개의 뷰가 포함 된 xib가 있습니다. 그리고 그 xib에서 2 개의 객체, 뷰 컨트롤러를 넣었습니다. 각보기 컨트롤러는이 xib의 한보기에 연결되어 있습니다. 이 XIB의

파일의 소유자는 이제 마스터 뷰 컨트롤러의 인스턴스를 생성하는 NSWindowController을 가지고있는 XIB

에 뷰 컨트롤러에 바인딩 된 두 개의 뷰 컨트롤러의 속성을 가진 마스터 뷰 컨트롤러이다. 내 창으로 masterViewController.subViewController1.view를 추가하려고하면

, 나는 subViewController1 내가 내 NSWindowController에 masterViewController를 초기화하고 때, 나는 전화 했어 nil

것을 알게 :

[masterViewController alloc] initWithNibName:"SubViews"] 

를하고 제대로 초기화 , 모든 코드가 설정되어 있지만 내 subViewControllers 절대로 초기화되지 않습니다.

나는 initWithNibName을 호출하면 내 xib에 subViewControllers을로드하고 내 masterViewController에 선언 한 속성에 연결한다고 생각했습니다. 그러나 이는 initwithNibName 호출 이후에 subViewControllersnil이기 때문에 제대로 작동하지 않는 것으로 보입니다.

나는 에 명시 적으로 [[subViewController alloc] init]을 호출 할 생각 이었지만, 그 중 하나가 작동하지 않는 것 같습니다.

내가해야 할 경우, 나는 xib를 두 개의 xibs로 나누고 두 소유자는 viewcontrollers를 분리 할 것이지만 이론적으로는 내 xib 하나에 두 개의보기 컨트롤러를 만들 수 있어야합니다.

내가 바보 같은 짓을하는 경우 나도 알려주십시오. 나는 주로 실험하고 이것을 구현하는 최선의 방법을 찾고 있습니다.

미리 감사드립니다.

+0

왜 처음부터 viewcontroller가 필요한가요? Cocoa API로 iOS 애플리케이션을 개발하려고하십니까? 일반적으로 사용하는 WindowController입니다. 나는 종종 윈도우 컨트롤러를 사용하지 않는다. –

+0

@ElTomato 아 죄송합니다. OSX 응용 프로그램입니다. 아마이 잘못을 건축하고 있습니다. NSWindowController 대신에 무엇을 사용합니까? 나는 NSWindow를 가지고 있는데, 자세한 정보가 담긴 popover를 표시하는 버튼이있다. 하지만 버튼과 popover는 모두 사용자가 로그인 한 텍스트를 가지고 있습니다. 그래서 버튼과 popover를 모두 포함하는 루트 viewcontroller를 만들었습니다. 그리고 viewcontroller는 메인 윈도우에 있습니다. –

답변

0

컨트롤러가로드되지 않고 초기화 된 경우에만 표시됩니다. 뷰 컨트롤러를로드하기 위해 기본 뷰 컨트롤러의 뷰에 액세스 한 다음 뷰를 액세스해야했습니다.