2016-09-06 16 views
0

私はかなり長い間解決しようとしている問題があります。プロジェクトファイルも提供されています。Mac用スウィフトストーリーボードのNSViewControllerから別のNSViewControllerへの切り替え

私は次の考えを持っています。サイドバーにはボタンがあり、ボタンをクリックすると右側のコンテンツだけが切り替わります。

私はもともとストーリーボードが1つしかないプロジェクトを作成しました。ウィンドウはボタンとカスタムビューを持つ最初のViewControllerを起動します。

私が必要とするのは、カスタムビューが別のViewControllerの内容に置き換えられたボタンの1つが押されたときです。ビューだけで、前のビューコントローラ全体が別のビューコントローラに置き換えられるわけではありません。

どうすればよいですか? ?レイヤー?私はストーリーボードを理解することはできませんが、たくさんの人と一緒に仕事したいと思っているので、必然的に助けが必要です。これは私を始めさせるでしょう。

もう一つの選択肢は、私がsplitviewを使用すればそれは良いだろうと思っていたことでしょうか?それから私はおそらく右のビューのsontrollerを完全に別のものと置き換えることができますか?

Link to project file in Xcode

My Storyboard

+1

{ はnewView = newController.view

if let frame = NSApp.mainWindow?.contentView?.frame { newView.frame = frame // Resize the view to the window instead } guard let main = NSApp.mainWindow?.contentViewController else { return } if main.childViewControllers.count < 1 { // if no controllers, then it's main controller main.addChildViewController(newController) // add new controller main.view.addSubview(newView) // add new view to main view if message != nil { newController.notify(message) } } else { let current = main.childViewControllers.last // get lasr controller as current before adding new main.addChildViewController(newController) // add new controller main.transition(from: current!, to: newController, options: [.crossfade]){ if message != nil { newController.notify(message) } } } 

をしましょう}:所有者:topLevelObjects : 'もう一つの提案は、ストーリーボードでうまく動作するタブビューコントローラーですが、ボタンは一番上に表示されます。 – vadian

答えて

0

私はtextlableでこれを作成しても同じです。

  1. 作成は、 "弱いのvar labelListInvoices @IBOutlet:!NSTextFieldを"
  2. アクションの作成 ":(:InvoicesList "バンドル:nilを app.show(!ACT)
  3. VAR「VARを作成します(送信者_ ANYOBJECT)@IBActionのFUNCのonListInvoicesをnibName)" は行為= InvoicesListを聞かせて、{" ! //行為= MAINVIEW(nibNameてみましょう: "MAINVIEW" を、バンドルアプリ= NSApp.delegateとしてAppDelegate // APPディレクター

    //使用 "

  4. は、今これは をFUNC appdelegateし、作成するために行きます" :nil) // app.show(act!) func show(_ newController:ControllerType、メッセージ付き:Parame ters? = nilを)私は、子ビューのnibファイルを使用すると `loadNibNamedとでそれらをロードするでしょう。この場合、 「

関連する問題