web-dev-qa-db-ja.com

Swift-ナビゲーションバーで別のビューコントローラーを表示する

2つのViewControllerがあります-1つはストーリーボードあり、もう1つはありません。これらのビューコントローラーの両方には、上部に独自のナビゲーションバーがあります。 self.presentViewController(editorViewController, animated: true, completion: nil)を使用すると、editorViewControllerが表示されますが、ナビゲーションバーはありません。

これを修正する方法はありますか?

8
Vasil Nunev

次のコードを使用して問題を修正しました。

let editorViewController = IMGLYMainEditorViewController()
let navEditorViewController: UINavigationController = UINavigationController(rootViewController: editorViewController)
self.presentViewController(navEditorViewController, animated: true, completion: nil)

ナビゲーションバーに項目が表示されるようにしたので、navEditorViewControllerを追加しました。

21
Vasil Nunev

self.navigationController!.pushViewController(...)をお試しください

9
David P

したがって、current以外の既存のUINavigationControllerがすでに存在することを考えると、この問題にまだ興味があるすべての人にとって:

Swift

まず、提示したいUIViewControllerを見つける必要があります。

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let destinationViewController = storyboard.instantiateViewController(withIdentifier: "DestinationViewController") as! DestinationViewController

次に、同じことをUINavigationControllerに対して実行します。

let destinationNavigationController = storyboard.instantiateViewController(withIdentifier: "DestinationNavigationController") as! UINavigationController

次に、DestinationViewControllerを宛先の先頭に移動しますUINavigationControllerスタック:

destinationNavigationController.pushViewController(destinationViewController, animated: true)

最後に、宛先を提示しますUINavigationController

self.present(destinationNavigationController, animated: true, completion: nil)
3
Chris Tsitsaris