2016-08-07 9 views
0

私は実際には、それぞれのビューコントローラとウィンドウコントローラがビューボードとウィンドウコントローラを介してどのように管理されているかについては何も知りません。OS XのNSWindowControllerまたはNSViewControllerのサブクラス

ここに私の問題があります: 私はmyMainViewControllerで管理されているメインビューのウィンドウを持っています。 私がしたいのは、anotherView(anotherViewを含む)を表示し、myMainViewControllerからanotherViewにデータを送信するためにmainViewのボタンを作ることです。 ストーリーボードを使用して、(関連するビューとともに)ウィンドウコントローラをドラッグし、ボタンをウィンドウ(およびperformsegue)に接続しました。 しかし、myMainViewControllerからanotherViewのコントロールにアクセスするにはどうすればいいですか?

  • anotherWindowControllerクラスまたはanotherViewControllerクラスを作成する必要がありますか?
  • 2番目のケースでは、どうすればmyMainViewControllerにアクセスできますか?
  • 別のウィンドウ(そのビューのみ)について何も管理しなくても、両方を作成する必要がありますか?

基本的に、mainViewのボタンはanotherWindowに埋め込まれた別のビューに画像と文字列を送信する必要があります。 1)新しいカスタムビューを作成します。

おかげ

...私はそれは明らかだと確信していますが、私は非常に明確な、アップルのドキュメントで少し混乱はないよ

ジョシュ

答えて

0

はあなたが必要とするように見えますコントローラ(サブ分類機構nsviewcontrollerで新しいクラス) 2)その中に二つの性質(画像のための1、文字列の別)

var myImage: NSImage! 
    var myText: NSString! 

3を作成する)対象で、ボタンを押した後、あなたは、新しいオブジェクトを作成する必要があります新しい今変数としてクラス、および作成したプロパティ

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

4にそれを通じたアクセス)とpresentViewControllerを使用して、第2のビューコントローラを()を提示し、今あなたが開いたのViewController

+0

戦車の方法のviewDidLoadに必要なプロパティを使用することができますしかし、明らかに、presentViewControllerを使用することは、segueの使用と矛盾します。実際、私はついにこの問題を管理しました。私はちょうど初期ビューコントローラでprepareforsegueを実装し、 'if let vc = segue.destinationController.contentViewController as test? AnotherViewController ' – Joshua

+0

はい、このオプションは、ビジュアルエディタを使用していて、ボタンが別のアクションなしでコントローラを開くだけであれば、私のメソッドはより統一されています。 – KostiaZzz