preferredDisplayMode = .AllVisible
を持つUISplitViewController
があります。 Hereは、どのように私のストーリーボードを設定したのですか?詳細ビューコントローラがすでにUINavigationController
に埋め込まれていることに注意してください。Detail View Controllerが常にUINavigationControllerに組み込まれていることを確認するにはどうすればよいですか?
特定のボタンがマスタービューコントローラのtoolBar
にタップされたとき、私は次のメソッドを実行します。
@IBAction func entertainmentBarButtonItemTapped(sender: AnyObject) {
self.showDetailViewController(self.storyboard!.instantiateViewControllerWithIdentifier("SearchViewController") as! SearchViewController, sender: sender)
}
を今、これはポートレートモードでは、iPhone上で正常に動作しますが、iPhone 6の風景モードで+、詳細表示コントローラー(今説明したもの)にはnavigationBar
が表示されません。これは私が望む行動ではありません。デフォルトのDetail View ControllerはUINavigationController
に埋め込まれているので、想像するとnavigationBar
が突然見つからないと矛盾するように見えます。
@IBAction func entertainmentBarButtonItemTapped(sender: AnyObject) {
self.showDetailViewController(self.storyboard!.instantiateViewControllerWithIdentifier("NavigationSearchViewController") as! NavigationSearchViewController, sender: sender)
}
は、今私は前と同じVCと私の詳細ビューコントローラを交換していますが、それは代わりにUINavigationController
に埋め込まれている:
それでは私の代わりに、以下を試してみてください。この動作は、navigationBarが表示されるため、ランドスケープモードでは6+で期待通りに動作します。
しかし、ポートレイトモードでは、新しいVCがスタックにプッシュされるため、元のDetail View ControllerでtoolBar
が表示されなくなり、何かが正しく行かなかった。
showDetailViewController(..)
を正しく使用すると、UINavigationController
には常に詳細ビューコントローラが組み込まれていますが、奇妙な遷移はありません。私は、これは私にUISplitViewControllerデリゲートを変更する必要があると思うが、私は 'UINavigationControllerをスタックすることはできません。エラー。
編集:私は修正 のみデリゲート:
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
//Since splitViewController!.showViewController changes secondaryViewController to no longer be a UINavigationController, this must first be checked for there to even be a BlankVC.
if let secondaryNavController = secondaryViewController as? UINavigationController {
if ((secondaryNavController.topViewController) != nil) {
return true
}
return false
}
私は現在、同じ動作を参照してください。
元の投稿が更新されました。あなたの文脈にmasterNavControllerが何であるかはわかりません。 – AppreciateIt