2016-08-07 8 views
0

저는 스토리와 윈도우의 각각의 뷰 컨트롤러와 윈도우 컨트롤러를 통해 어떻게 뷰와 윈도우가 관리되는지에 대해 알지 못합니다.OS X에서 NSWindowController 또는 NSViewController를 서브 클래 싱하기

여기 내 문제가 있습니다 : myMainViewController에 의해 관리되는 mainView가있는 창이 있습니다. mainView에서 anotherWindow (anotherView 포함)를 표시하고 myMainViewController의 데이터를 anotherView로 보내기위한 버튼을 만들고 싶습니다. 스토리 보드를 사용하여 창 컨트롤러 (연결된 뷰 포함)를 드래그하고 버튼을 창 (및 performsegue)에 연결했습니다. 그러나 myViewViewController에서 anotherView의 컨트롤에 어떻게 액세스해야합니까?

  • anotherWindowController 클래스 또는 anotherViewController 클래스를 생성해야합니까?
  • 두 번째 경우는 어떻게 myMainViewController을 통해 액세스 할 수 있습니까?
  • 다른 창 (보기 만)에 대해 관리 할 것이 없어도 두 가지를 모두 만들어야합니까?

기본적으로 mainView의 버튼은 anotherWindow에 내장 된 다른보기로 이미지와 문자열을 보내야합니다. 1) 새 사용자 정의보기를 만들 :

감사

... 나는 그것이 명백한 확신하지만 분명, 애플 문서와 조금 혼란 아니에요

조쉬

답변

0

는 당신이 필요로하는 것 같은데 컨트롤러 (새 하위 클래스라는의 nsviewcontroller는 클래스) 2) 문자열에 대한 또 다른, 이미지에 대한 하나 (그 안에 두 개의 속성을 만들 수)

var myImage: NSImage! 
    var myText: NSString! 

3) 대상에, 버튼을 누른 후, 당신은 새로운 객체를 생성하셔야합니다 새로운 개방의 ViewController

+0

탱크에있어서의 viewDidLoad에서 생성 특성

var secondController = SecondViewController() secondController.myImage = //set your image SecondController.myText = //set your string 

4) 이제 제보기 컨트롤러 (presentViewController를 사용하여)이 존재하고, 이제 필요한 사용 특성 변수로 클래스와 그것을 통해 접근 하지만 분명히 presentViewController를 사용하는 것은 segue를 사용하는 것과 모순됩니다. 사실, 마침내 문제를 관리했습니다. 방금 초기 뷰 컨트롤러에서 prepareforsegue를 구현하고'if let vc = segue.destinationController.contentViewController as test? AnotherViewController' – Joshua

+0

예 시각적 편집기를 사용하고 다른 버튼을 사용하지 않고 컨트롤러를 열어야하는 경우이 옵션을 사용하는 것이 좋습니다. 내 방법이 더욱 통일되었습니다. – KostiaZzz