2016-10-04 17 views
0

UISplitViewController(iPhoneとiPadの両方)をモーダルに表示する必要があり、透明な背景(ぼかしビューを追加します)が必要です。 私はUIViewControllerを提示するときにそれを行うことができましたが、分割ビューコントローラでは機能しません。 スプリットビューコントローラには2つのナビゲーションコントローラがあります。透明な背景を持つモーダルUISplitViewController

私の結果は、マスタービューコントローラが黒い背景を持つことです。

ありがとうございました。

答えて

0

UISplitViewControllerはルートビューコントローラですか?そうでない場合、それは奇妙な挙動を示すことがあります。アップルパー:

」...ほとんどの場合には推奨されませんやって、他のいくつかのコンテナビューコントローラ内の子として分割ビューコントローラをインストールすることは可能であるが、分割ビューコントローラがあります。 ... "

これは(詳細ビューコントローラから呼び出され、分割されたビューコントローラを2つのナビゲーションコントローラで使用しています)。この時点で私はリセットしたかったnavスタック:

let firstVC = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController 
let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController 
    // Get a reference the the Master View nav controller 
let masterNav = self.splitViewController!.viewControllers[0] as! UINavigationController 
    // Set desired VC's as nav stack RootViewControllers   
self.navigationController?.setViewControllers([matchVC], animated: true) 
masterNav.setViewControllers([masterMatchTableView], animated: true) 

ナビスタックを維持する場合は、両方のナビゲーションコントローラで.pushViewControllerを呼び出すことができます。

これでまだ作業している場合は、コードを投稿してください。私はそれを見ていただきたいと思います。

編集:

だから、あなたはモーダルスプリットビューコントローラを提示することはできません。 https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html

スプリットビューコントローラは、常にあなたが作成したインターフェイスのルートでなければなりません。言い換えれば、UISplitViewControllerオブジェクトからのビューを常にアプリケーションのウィンドウのルートビューとしてインストールする必要があります。スプリットビューインターフェイスのペインには、ナビゲーションコントローラ、タブバーコントローラ、またはインターフェイスを実装するのに必要な他のタイプのビューコントローラが含まれている場合があります。 スプリットビューコントローラはモーダルで表示することはできません。

上記のコードスニペットは、マスタービューと詳細ビューの両方を同時に表示します。または、詳細ビューとして新しいVCを提示し、UISplitViewController.preferredDisplayMode = .primaryHiddenをモーダルに1つのVCに設定することもできます。

+0

透明な背景でSplitViewControllerを(モーダルでもプッシュでも)表示する方法はありますか?マスターVCとディテールVCが透明である必要があります。 – Oded

関連する問題