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に設定することもできます。
透明な背景でSplitViewControllerを(モーダルでもプッシュでも)表示する方法はありますか?マスターVCとディテールVCが透明である必要があります。 – Oded